gpt4 book ai didi

xamarin - NameResolutionFailure 与 ConnectFailure 问题

转载 作者:行者123 更新时间:2023-12-02 16:38:36 25 4
gpt4 key购买 nike

这是一个相当奇怪的问题,但仍然是一个非常糟糕的问题。当用户在完全没有互联网的情况下进入我们的应用程序时,我们会返回 NameResolutionFailure 作为尝试通过 HttpClient 进行 API 调用的错误消息。好吧,没关系。但问题是,当用户连接到互联网、返回应用程序并尝试进行另一个 API 调用时,我们会收到相同的错误消息。似乎正在发生某种 DNS 缓存?

另一方面,如果用户在应用程序中具有互联网访问权限,然后失去了它,当我们尝试进行 API 调用时,我们会从 API 收到 ConnectFailure(网络无法访问) 错误称呼。一旦用户连接到互联网,他们就可以立即进行 API 调用。

我试图解决的问题是,A) NameResolutionFailureConnectFailure 之间有什么区别? B) 我们可以在应用程序中做些什么来强制它完全重试 API 调用而不使用任何缓存?对于我来说,DNS 是否被缓存并不明显,但我们有一种暗示,那就是正在发生的事情。

这是代码的一部分(如果您需要更多代码,请告诉我,我认为这是唯一需要的代码)

using(var client = new HttpClient())
{
client.Timeout = TimeSpan.FromSeconds(MaximumWebRequestTime);
HttpResponseMessage response = null;
try
{
response = await client.GetAsync(URL);
if (response.IsSuccessStatusCode) ....

最佳答案

刚刚在 iOS 上也遇到了这个问题,并通过设置 DNS 刷新超时修复了它:

System.Net.ServicePointManager.DnsRefreshTimeout = 0;

这是一个临时修复,但目前有效。尚未在 Android 上进行测试。很快就会这样做。

编辑:Android 测试成功。

关于xamarin - NameResolutionFailure 与 ConnectFailure 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40137190/

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