Jas*_*yne 5 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;
}
Run Code Online (Sandbox Code Playgroud)
我知道异步/等待问题.这是一个简化的示例来说明问题.
是否存在可能影响此问题的某种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
Run Code Online (Sandbox Code Playgroud)
问题似乎是有人在没有告诉我们的情况下更改了 URL,并且他们设置了重定向。HttpClient 正在响应重定向,但最终实际上将请求作为 Get 发送到最终目的地。
对我来说,这似乎是 HttpClient 中的一个错误,它应该将最终请求作为 Post 发送,或者抛出一个异常,说它不能按照我的要求执行。