通过HttpClient将空体发布到REST API

时间:2011-10-26 19:13:04

标签: c# httpclient wcf-web-api

我试图调用的API要求我执行POST但空体。我是新手使用WCF Web API HttpClient,我似乎无法找到可以用空体做帖子的写代码。我找到了一些HttpContent.CreateEmpty()方法的引用,但我认为这不是Web API HttpClient代码,因为我似乎无法找到该方法。

4 个答案:

答案 0 :(得分:73)

使用源自StringContent的{​​{1}}或ObjectContent,或使用HttpContent作为null(请参阅this comment)。

答案 1 :(得分:3)

找到了:

  

任务task = client.PostAsync(url,null);

在请求正文中添加null,在WSO2上失败。替换为:

  

任务task = client.PostAsync(url,new {});

并且工作了。

答案 2 :(得分:1)

要解决此问题,请使用以下示例:

   using (var client = new HttpClient())
            {
                var stringContent = new StringContent(string.Empty);
                stringContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded");
                var response = client.PostAsync(url, stringContent).Result;
                var result = response.Content.ReadAsAsync<model>().Result;
            }

答案 3 :(得分:-5)

我认为如果您的网络方法没有参数或者它们都适合网址模板,那么它会自动执行。

例如,此声明发送空体:

  [OperationContract]
  [WebGet(UriTemplate = "mykewlservice/{emailAddress}",
     RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
     BodyStyle = WebMessageBodyStyle.Wrapped)]
  void GetStatus(string emailAddress, out long statusMask);
相关问题