我正在使用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发送,或者抛出异常,说它无法执行我要求的操作。