我有一個restsharp客戶端,並要求設立這樣的: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秒。
出於某種原因,我設置的超時不適用於這種情況。
有人有這方面的解決方案?
謝謝你的答案。那麼,你有什麼建議我做無限的時間超時? –
首先,我會將操作分解爲開始,狀態和結果操作。撥打電話,返回一個令牌,然後檢查狀態。最後,獲取保存的結果。如果這是不可行的,那麼我會建議儘可能長時間超時,並希望最好。如果你控制API,那就去找門#1後面的東西。 –
你說得對。在官方文檔中,有一個-1表示無限制超時。我把它像Int32.MaxValue和工作。謝謝你,小夥伴! –