gpt4 book ai didi

Xamarin iOS HttpClient 超时不起作用

转载 作者:行者123 更新时间:2023-12-02 02:48:32 26 4
gpt4 key购买 nike

在某些时候,我们发现我们应用程序中的所有请求在 iOS 上都有 60 秒的超时,尽管我们将我们使用的 HTTP 框架的默认值设置为 3 分钟。我尝试了以下代码来确定是否是库有问题:

try
{
using (var http = new HttpClient())
{
http.Timeout = TimeSpan.FromMinutes(1.5);
await http.GetAsync("https://httpstat.us/200?sleep=70000");
}
}
catch (Exception ex)
{
}

虽然超时设置为 90 秒并且请求持续 70 秒,但此代码因超时异常而失败。事实证明它不会覆盖 60 秒的默认超时。相同的代码在新项目上运行良好。

在项目文件中我们有<MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>

最佳答案

如果您没有创建自己的 NSUrlSessionHandler 实例并提供.ctor 中的自定义 NSUrlSessionConfiguration

iOS 中默认的 NSUrlSessionConfiguration 超时设置为 60 秒。

因此,在您的 Xamarin.iOS 应用程序项目中,打开 AppDelegate.cs 并在 FinishedLaunching 覆盖中设置默认 session 超时参数。

NSUrlSessionConfiguration.DefaultSessionConfiguration.TimeoutIntervalForRequest = 90.0;
NSUrlSessionConfiguration.DefaultSessionConfiguration.TimeoutIntervalForResource = 90.0;

timeoutIntervalForRequest

The timeout interval to use when waiting for additional data.

timeoutIntervalForResource

The maximum amount of time that a resource request should be allowed to take.

回复:https://developer.apple.com/documentation/foundation/nsurlsessionconfiguration#//apple_ref/occ/instp/NSURLSessionConfiguration/timeoutIntervalForRequest

关于Xamarin iOS HttpClient 超时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53229040/

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