gpt4 book ai didi

C# ASP.NET Core - SocketException : No such host is known

转载 作者:行者123 更新时间:2023-12-01 17:55:26 49 4
gpt4 key购买 nike

我遇到的问题似乎与使用 HttpClient 异步调用特定 API 相关 - 奇怪的是,它不会一直发生,可以通过刷新页面来解决(有时)一次,有时多次)。

我认为这可能是本地问题,但在 Azure 上托管会产生相同的结果。

原始异常详细信息:

System.Net.Sockets.SocketException (11001): No such host is known at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)

我已经检查过:

  • API 没有任何限制
  • 在浏览器中传递请求网址会返回预期的 JSON 结果
  • 刷新页面有时可以解决问题

错误的开始: Error top

其余: Error bottom

这似乎是导致问题的方法:

public async Task<List<MoonPhase.Phasedata>> GetPhaseDataAsync(double lat, double lng, int year)
{
string requestUrl = "https://api.usno.navy.mil/moon/phase?year=" + year + "&coords=" + locationService.FormatCoordinates(lat, lng) + "&tz=0";

using (var client = new HttpClient())
{
var content = await client.GetStringAsync(requestUrl);
var moonPhaseObject = JsonConvert.DeserializeObject<MoonPhase.RootObject>(content, new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
});

return moonPhaseObject.PhaseData;
}
}

最佳答案

我通过在 15 分钟内尝试多次访问来测试 API(使用 this URI )。一两分钟内似乎出现了 DNS 问题。

如果存在 DNS 故障 ( source ) 等问题,GetStringAsync 方法会引发 HttpRequestException 异常。您可以 try catch 此异常,并在抛出此异常时实现重试机制。

关于C# ASP.NET Core - SocketException : No such host is known,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793682/

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