我试图调用的 API 要求我进行 POST 但主体为空。我是使用 WCF Web API HttpClient 的新手,我似乎无法找到可以使用空正文发布帖子的编写代码。我找到了对一些 HttpContent.CreateEmpty() 方法的引用,但我认为这不适用于 Web API HttpClient 代码,因为我似乎找不到该方法。
问问题
97604 次
5 回答
212
使用StringContent
or ObjectContent
which derived from HttpContent
or 你可以使用null
as HttpContent
:
var response = await client.PostAsync(requestUri, null);
于 2011-10-26T20:06:41.583 回答
124
以前做过,只是保持简单:
Task<HttpResponseMessage> task = client.PostAsync(url, null);
于 2017-05-12T11:34:01.937 回答
7
已经发现:
Task<HttpResponseMessage> task = client.PostAsync(url, null);
将 null 添加到请求正文,这在 WSO2 上失败。替换为:
Task<HttpResponseMessage> task = client.PostAsync(url, new {});
并且工作了。
于 2017-09-07T22:53:45.780 回答
2
要解决此问题,请使用以下示例:
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;
}
于 2020-04-19T07:28:42.823 回答
-6
如果您的网络方法没有参数或者它们都适合 URL 模板,我认为它会自动执行此操作。
例如,此声明发送空正文:
[OperationContract]
[WebGet(UriTemplate = "mykewlservice/{emailAddress}",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped)]
void GetStatus(string emailAddress, out long statusMask);
于 2011-10-26T19:23:13.250 回答