为什么我使用 RestSharp 得到 ResponseCode 0?

Why do I get ResponseCode 0 using RestSharp?

我一直尝试使用各种可用的 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。有时它工作得很好,但它非常罕见。

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

我们有documented this behaviour。您可以使用许多其他属性来找出实际的响应代码和任何错误。

也可以设置客户端ThrowOnAnyError属性为true强制RestSharp抛出