gpt4 book ai didi

c# - RestSharp 超时不起作用

转载 作者:太空狗 更新时间:2023-10-29 20:53:54 37 4
gpt4 key购买 nike

我有一个像这样设置的 restsharp 客户端和请求:

var request = new RestRequest();
request.Method = Method.POST;
request.AddParameter("application/json", jsonBody, ParameterType.RequestBody);
request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
request.Timeout = -1;
request.ReadWriteTimeout = -1;
var url = $"http://{ipAddress}/api/calculate";
var client = new RestClient();
client.BaseUrl = new Uri(url);
client.Timeout = -1;
client.ReadWriteTimeout = -1;
var response = client.Execute(request);

此请求需要一段时间才能完成,大约需要 30 分钟。现在,我知道有更优雅的方法可以做到这一点,但是,对于这个请求,我需要这样做。

此 RestSharp 客户端和请求在 Windows 服务中执行。当服务执行请求时,它会抛出 TimoutException 并且请求的最大超时时间约为 40 秒。

出于某种原因,我设置的超时不适用于这种情况。

有人对此有解决方案吗?

最佳答案

解决方案(版本 107+)

var options = new RestClientOptions("baseURL") {
ThrowOnAnyError = true,
Timeout = 1000 // 1 second - thanks to @JohnMc
};
var client = new RestClient(options);

旧版本:

将默认超时更改为:5 秒 - 例如 -(即 5000 毫秒):

    var client = new RestClient("BaseUrl");
client.Timeout = 5000; // 5000 milliseconds == 5 seconds

关于c# - RestSharp 超时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46584175/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com