第二次调用 C# HttpClient 错误请求
Posted
技术标签:
【中文标题】第二次调用 C# HttpClient 错误请求【英文标题】:C# HttpClient Bad Request on second call 【发布时间】:2016-03-09 04:32:57 【问题描述】:我发现,在任何第二个 httpclient 请求中,我总是收到 400 Bad Request。
我可以确认 API 调用确实有效并返回 200 - 所以如果我翻转它们,第一个调用将返回 200 第二个调用,即 400。
我不明白为什么会这样。
using (HttpClient client = new HttpClient())
client.BaseAddress = new Uri(BaseUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage blah = await client.GetAsync("api/subscriptions?account=eclipse&application=Sample");
HttpResponseMessage dfds = await client.GetAsync("api/subscriptions?account=eclipse");
...
【问题讨论】:
您可以访问服务器吗?你能确认服务器没有因为请求太频繁而拒绝它吗? @Steve 不是这样,我可以毫无问题地调用 api,并且我已经尝试调试并在两个调用之间单步执行,但有一些滞后 - 结果相同。 【参考方案1】:如果不查看您尝试调用的控制器功能,很难判断。可能发生的情况是 REST 服务在服务器上遇到异常并返回 400。
服务使用的是什么网络服务器?也许它有某种同时请求阻塞。您可以尝试不使用异步。
我要做的是打开 Fiddler (http://www.telerik.com/fiddler) 并查看网络流量。查看来自网络服务器的响应,看看那里是否有任何异常数据。
【讨论】:
谢谢,我安装了 fiddler,结果第二个调用返回 400,因为 "msg" : "Referer header doesn't match the white-list." 0以上是关于第二次调用 C# HttpClient 错误请求的主要内容,如果未能解决你的问题,请参考以下文章
PHP OAuth :: fetch()在第二次连续调用时返回错误请求