首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RestSharp超时

RestSharp超时
EN

Stack Overflow用户
提问于 2022-01-26 17:01:13
回答 1查看 5K关注 0票数 2

我在RestClient响应返回时遇到了问题,因为"StatusCode: 0,Content:,Content:)“与ErrorMessage的”请求“被取消,因为配置的HttpClient.Timeout时间为100秒。

这是url端的超时还是我的httpclient上的超时?request.timeout是对的吗?这个请求可能需要花费5+分钟,尽管由于数据的最终优化很糟糕,它只需要170 to的数据。

var client =新的RestClient(url);

代码语言:javascript
复制
            RestRequest request = new RestRequest() { Method = Method.Get };

            request.Timeout = 300000;
            
            request.AddParameter("access_token", AccessToken);
            request.AddParameter("start_date", StartDate.ToString("yyyy-MM-dd"));
            request.AddParameter("end_date", EndDate.ToString("yyyy-MM-dd"));
            request.AddParameter("offset", offset.ToString());

            var response = await client.ExecuteAsync(request);
            var responseWorkLoads = JObject.Parse(response.Content).SelectToken("worklogs");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-26 20:16:43

有两个超时是RestSharp允许您设置的。

创建RestClient的新实例时,可以指定将使用RestOptions覆盖默认100 ms的HttpClient超时。

代码语言:javascript
复制
var client = new RestClient(new RestClientOptions { Timeout = 300000 });

由于包装的HttpClient每个RestClient实例实例化和配置一次,所以设置请求超时不会覆盖该设置,否则客户端将不会是线程安全的。

另一方面,如果请求超时小于客户端超时,则请求超时将覆盖该客户端超时。RestSharp使用请求超时创建取消令牌源,因此当链接取消令牌取消时,请求将被取消。

我认为,目前RestClient也没有在客户端超时时正确设置故障原因,只有当令牌被取消时。我会为此制造一个问题。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70867376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档