Как опубликовать JSON в webapi с помощью Webclient в.net 3.5
Поэтому я пытаюсь назвать свой метод записи web api(.net 4.0), как показано ниже.
public class ApiClientController : ApiController
{
[HTTP Post]
public string RequestMethod(ParamClass MyClass)
{
Dostuff\\
}
}
Вызов это из моей службы Windows (.NET 3.5), как показано ниже
WebClient client = new WebClient();
string webApiUrl = "http://localhost:51482/";
ParamClass param = new ParamClass() { //set params };
//using System.Runtime.Serialization
Json.DataContractJsonSerializer serializer = new
Json.DataContractJsonSerializer(param.GetType());
MemoryStream ms = new MemoryStream();
serializer.WriteObject(ms, param);
string serialisedData = Encoding.Default.GetString(ms.ToArray());
var response =
client.UploadString("http://localhost:51482/api/ApiClient/RequestPapp",
serialisedData);
Также мой класс обслуживания Windows Param выглядит следующим образом
[DataContract]
public class ParamClass
{
[DataMember]
public string name { get; set; }
[DataMember]
public string refNo { get; set; }
[DataMember]
}
Но в моем веб-интерфейсе API ParamClass MyClass является нулевым при пост-вызове и значения не поступают (при отладке). Я попытался добавить [DataContract] и [DataMember] в Param class webapi, но не повезло. Ранее я выполнял эту задачу из службы Windows
client.PostAsJsonAsync<ParamClass>("/api/ApiClient/RequestPapp", param);
И это сработало. Но я должен использовать.net 3.5 и httpClient класса 4.0.
Пожалуйста, помогите мне. Заранее спасибо.