首页 > 解决方案 > 为什么我使用 RestSharp 得到 ResponseCode 0?

问题描述

我不断尝试使用各种有效的 http 代理访问此页面,并且不断收到响应代码 0

var c = new RestClient("https://api.myip.com");
c.Proxy = new WebProxy(proxy.Split(":")[0], Convert.ToInt32(proxy.Split(":")[1]));
c.Timeout = 2000;
var req = new RestRequest("/", Method.GET);
var rest = c.Get(req);

我检查了代理,它们还活着并且运行良好。为什么我大部分时间都得到响应代码 0?有时甚至是 TemporaryRedirect 或 BadRequest,但这种情况非常罕见。我会说 9.9/10 次我得到响应代码 0。有时它工作得很好,但它非常罕见。

标签: c#.netrestsharp

解决方案


您应该在收到的回复中检查更多内容。该IRestResponse实例为您提供了大量有关发生的事情的信息。RestSharp 不会按设计抛出异常,并且在请求执行期间发生的任何错误都会导致响应代码0,并且异常本身会添加到响应对象中。

我们已经记录了这种行为。您可以使用许多其他属性来找出实际的响应代码和任何错误。

您还可以将客户端ThrowOnAnyError属性设置true为强制 RestSharp 抛出。


推荐阅读