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