我正在为我的家庭自动化编写一个 blazor 服务器端应用程序 (.NET6),并让它在家庭服务器上的 IIS 上运行。
如果我在本地计算机上的 IIS Express 中运行以下代码,一切正常。
string _urlForecast = "https://api.openweathermap.org/data/2.5/forecast?id=...";
Uri myUri = new Uri(_urlForecast, UriKind.Absolute);
HttpResponseMessage response = await HttpClient.GetAsync(myUri);
var data = await response.Content.ReadAsStringAsync()
如果我将其部署到本地家庭服务器并运行它,我会收到以下错误:
System.Net.Http.HttpRequestException:没有已知的此类主机。 (api.openweathermap.org:443)
我的“家庭服务器”也运行 Windows 10,并且与我的开发 PC 位于同一网络中。 它位于相同的 IP 范围内,并且在网络适配器上具有相同的 DNS 设置。 我也尝试过关闭防火墙,结果相同。 我正在使用 DI 注入 httpClient,但也尝试不使用 DI。 我尝试使用 http://api... 和 https://api... 因为我的应用程序也可以通过 https 在内部网络中使用。不幸的是我没有任何 Http 请求的经验。
这是旧帖子,但看看文档
https://openweathermap.org/appid
我们可以看到不支持TLS。 (https://...不起作用)。
当然,您还需要一个密钥作为 URL 的一部分。
如果问题是 TLS,那么您收到的错误是有道理的,因为该端口 (443) 将被关闭并且不接受请求。
标准 http 请求不应出现相同的错误。