我正在使用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
答案 0 :(得分:4)
问题似乎是有人在没有告诉我们的情况下更改了网址,并且他们进行了重定向。 HttpClient响应重定向,但最终实际上将请求作为Get发送到最终目的地。
对我来说,这似乎是HttpClient中的一个错误,它应该将最终请求作为Post发送,或者抛出异常,说它不能按照我的要求执行。