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

c# httpclient PostAsJson sending GET request instead of POST

我正在使用 HttpClient 发出 post 请求。我返回 405 方法不允许。在 fiddler 中捕获跟踪时,它以 GET 而不是 POST!

的形式输出
using (var client = new HttpClient())
            {
                var url = AppSettingsUtil.GetString("url");
                var response = client.PostAsJsonAsync(url, transaction).Result;
            }

我知道 async/await 问题。这是显示问题的简化示例。

是否有某种 web.config 或 machine.config 设置会对此产生影响?其他请求(通过 RestSharp 发送)正确发送帖子

这是 fiddler 捕获的内容。 Re运行 fiddler 中的跟踪也 returns 405(如预期的那样)。手动将其切换为 POST 和 运行 从 fiddler 开始工作。

另外,可能因为方法切换为GET,fiddler中没有捕获body,只好手动粘贴在JSON

GET /*URL*/ HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: /*host*/
Connection: Keep-Alive

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

对我来说,这似乎是 HttpClient 中的一个错误,它应该将最终请求作为 Post 发送,或者抛出一个异常,说明它不能按照我的要求执行。

Forwarding a response from another server using JAX-RS