小编典典

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

json

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

阅读 757

收藏
2020-07-27

共1个答案

小编典典

问题似乎是有人在未告知我们的情况下更改了URL,因此他们将重定向设置到位。HttpClient正在响应重定向,但实际上最终将请求作为Get发送到最终目的地。

在我看来,这似乎是HttpClient中的错误,它应该将最终请求作为Post发送,或者抛出异常,说它无法执行我要求的操作。

2020-07-27