RestSharp 超时
RestSharp Timeout
我遇到 RestClient 响应返回的问题
“状态代码:0,内容类型:,内容长度:)”
错误信息为
“由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消。”
这是 url 端或我的 httpclient 的超时吗? request.timeout 正确吗?这个请求可能需要 5 分钟以上的时间,即使它只有 170KB 的数据,因为它们的末端优化不佳。
var client = new RestClient(url);
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");
RestSharp 允许您设置两个超时。
当您创建 RestClient
的新实例时,您可以使用 RestOptions
:
指定将覆盖默认 100 毫秒的 HttpClient
超时
var client = new RestClient(new RestClientOptions { Timeout = 300000 });
由于包装的 HttpClient
每个 RestClient
实例实例化和配置一次,设置请求超时不会覆盖该设置,否则客户端将不会 thread-safe。
另一方面,如果请求超时比客户端超时少,则它会覆盖客户端超时。 RestSharp 使用请求超时创建取消令牌源,因此当链接的取消令牌取消时请求将被取消。
我相信目前 RestClient 也没有在客户端超时时正确设置失败原因,只有当令牌被取消时。我会为此创建一个问题。
我遇到 RestClient 响应返回的问题 “状态代码:0,内容类型:,内容长度:)” 错误信息为 “由于配置的 HttpClient.Timeout 已过 100 秒,请求被取消。”
这是 url 端或我的 httpclient 的超时吗? request.timeout 正确吗?这个请求可能需要 5 分钟以上的时间,即使它只有 170KB 的数据,因为它们的末端优化不佳。
var client = new RestClient(url);
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");
RestSharp 允许您设置两个超时。
当您创建 RestClient
的新实例时,您可以使用 RestOptions
:
HttpClient
超时
var client = new RestClient(new RestClientOptions { Timeout = 300000 });
由于包装的 HttpClient
每个 RestClient
实例实例化和配置一次,设置请求超时不会覆盖该设置,否则客户端将不会 thread-safe。
另一方面,如果请求超时比客户端超时少,则它会覆盖客户端超时。 RestSharp 使用请求超时创建取消令牌源,因此当链接的取消令牌取消时请求将被取消。
我相信目前 RestClient 也没有在客户端超时时正确设置失败原因,只有当令牌被取消时。我会为此创建一个问题。