c# - 为什么我使用 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。有时它工作得很好,但它非常罕见。
解决方案
您应该在收到的回复中检查更多内容。该IRestResponse
实例为您提供了大量有关发生的事情的信息。RestSharp 不会按设计抛出异常,并且在请求执行期间发生的任何错误都会导致响应代码0
,并且异常本身会添加到响应对象中。
我们已经记录了这种行为。您可以使用许多其他属性来找出实际的响应代码和任何错误。
您还可以将客户端ThrowOnAnyError
属性设置true
为强制 RestSharp 抛出。
推荐阅读
- reactjs - 路由器更换时如何钩防?
- sql - 使用 GROUP BY 循环 SQL 服务器记录以更新组的值
- asp.net - 在本地运行我的 ASP.NET Core 解决方案,浏览器是否会启动到以“P://localhost...”开头的 URL?
- bash - 如何获取 bash shell 脚本中的最后一个挂载点?
- ios - iOS WKWebView - 发布正文 (EXC_BAD_ACCESS) 上的 WKURLSchemeHandler 崩溃
- xml - 设置变量为 xsl pdf 发票创建者添加多个项目 - 错误
- node.js - ASP.Net Core React 模板构建失败
- c# - 为什么列表永远不会为空,为什么它永远不会添加新项目?
- javascript - ui bootstrap modal在点击背景时没有关闭
- c# - 在 ASP.NET Core 中使用前缀绑定创建任意输入的字典