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
我正在使用 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