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

时间:2016-01-29 22:00:32

标签: c# json http httpclient dotnet-httpclient

我正在使用HttpClient发布帖子请求。我不回来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中重新运行跟踪也会返回405(如预期的那样)。手动将其切换到POST并从fiddler运行。

另外,也许是因为该方法被切换到GET,fiddler中没有捕获身体,我不得不手动粘贴JSON

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

1 个答案:

答案 0 :(得分:4)

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

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