c#httpclient PostAsJson发送GET请求而不是POST

我正在使用HttpClient发出发布请求。我回到405方法不被允许。在提琴手中捕获轨迹时,它作为GET而不是POST发出!

using (var client = new HttpClient())

{

var url = AppSettingsUtil.GetString("url");

var response = client.PostAsJsonAsync(url, transaction).Result;

}

我知道异步/等待问题。这是显示问题的简化示例。

是否存在某种可能会影响此的web.config或machine.config设置?其他请求(通过RestSharp发送)正确发送了帖子

这是提琴手捕获的东西。在提琴手中运行跟踪也会返回405(如预期)。手动将其切换为POST并从fiddler运行作品。

另外,也许因为方法已切换为GET,所以提琴手中没有捕获任何主体,所以我不得不手动粘贴到JSON中

GET /*URL*/ HTTP/1.1

Content-Type: application/json; charset=utf-8

Host: /*host*/

Connection: Keep-Alive

回答:

问题似乎是有人在未告知我们的情况下更改了URL,因此他们将重定向设置到位。HttpClient正在响应重定向,但实际上最终将请求作为Get发送到最终目的地。

在我看来,这似乎是HttpClient中的错误,它应该将最终请求作为Post发送,或者抛出异常,说它无法执行我要求的操作。

以上是 c#httpclient PostAsJson发送GET请求而不是POST 的全部内容, 来源链接: utcz.com/qa/423909.html

回到顶部