通过HttpClient将空体发布到REST API

Rya*_*ldi 96 c# httpclient wcf-web-api

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

Ale*_*ler 89

使用StringContentObjectContent源自HttpContent或可以null用作HttpContent(见本评论).

  • 您可以使用`null`作为`HttpContent`,这将不会在请求中发送任何正文,例如`var response = await client.PostAsync(requestUri,null);` (69认同)
  • 5.0.0.0 版本中的程序集“System.Net.Http”仍然没有可为空的“HttpContent”参数,因此不应允许“null”。但它(仍然)似乎有效。我可以传递“null!”。 (6认同)
  • 使用带有空字符串的StringContent.谢谢! (3认同)
  • 为什么没有任何不需要“HttpContent”类的重载方法?我们至少应该提供一些东西(甚至是空字符串)来制作 http 帖子吗? (3认同)

Ogg*_*las 89

之前这样做,只是保持简单:

Task<HttpResponseMessage> task = client.PostAsync(url, null);
Run Code Online (Sandbox Code Playgroud)

  • 这比公认的答案更干净,应该予以表决。 (5认同)

小智 6

已经发现:

Task<HttpResponseMessage> task = client.PostAsync(url, null);
Run Code Online (Sandbox Code Playgroud)

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

Task<HttpResponseMessage> task = client.PostAsync(url, new {});
Run Code Online (Sandbox Code Playgroud)

并工作。