如何在.net 3.5中使用Webclient将JSON发布到webapi

时间:2018-08-10 15:02:02

标签: c# json post httpclient webclient

因此,我尝试按以下方式调用Web api(.net 4.0)的post方法。

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在调用后为null,并且值不是comin(在调试时)。 我也尝试在webapi Paramclass中添加[DataContract]和[DataMember],但是没有运气。早些时候,我是通过Windows服务执行此任务的,

  client.PostAsJsonAsync<ParamClass>("/api/ApiClient/RequestPapp", param);

它有效。但是我必须使用.net 3.5,而httpClient是4.0类。

请帮帮我。提前致谢。

0 个答案:

没有答案