gpt4 book ai didi

c# - 使用 HttpClient 时出现 HttpRequestException?

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:57 25 4
gpt4 key购买 nike

我有一个请求 URL 的 WebClient。我想在 UWP 应用程序中做同样的事情,我看到我必须导入 Microsoft.Net.Http 并使用 HttpClient

所以我替换了这个(在类库中):

WebClient client = new WebClient();
client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
string content = client.DownloadString(url);

通过这个在 PCL 库中:

HttpClient client = new HttpClient();
string content = await client.GetStringAsync(url);

现在我得到了这个异常(exception):

System.Net.Http.HttpRequestException occurred
HResult=-2147012867
Message=An error occurred while sending the request.
Source=System.Net.Http
StackTrace:
at System.Net.Http.HttpClientHandler.<SendAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at XXXX.YYYY.MHDJ.ZZZZ.<ParsePage>d__4.MoveNext()
InnerException:
ErrorCode=-2147012867
HResult=-2147012867
Message=Le texte associé à ce code d’erreur est introuvable.

Impossible d'établir une connexion avec le serveur

Source=""
StackTrace:
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Net.Http.HttpHandlerToFilter.<SendAsync>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Net.Http.HttpClientHandler.<SendAsync>d__1.MoveNext()
InnerException:

我认为问题不是标题,那是什么?

最佳答案

十六进制的 HRESULT 代码 -21470128670x80072EFD0x8007 前缀意味着它实际上是一个 HRESULT wrapper around a Win32 error code .原始的 Win32 错误代码是 0x2EFD

Win32 error code list告诉我们值 0x2EE00x2F8FERROR_INTERNET_* 错误代码,这听起来像是正确的错误类型。在访问 Win32 ERROR_INTERNET_* error code listing 的链接后,我们可以将错误代码 0x2EFD 转换回十进制 (12029) 并发现它是错误 ERROR_INTERNET_CANNOT_CONNECT:

The attempt to connect to the server failed.

相当笼统,没有太大帮助。

我建议再次尝试连接,确保您的应用程序具有适当的权限并且设备确实具有有效的互联网连接。如果这不起作用,请尝试重新添加 UserAgent header ;您设备上的网络堆栈可能坚持使用它。

更新: 追踪错误代码的含义相当乏味,所以我 wrote an app to do it .

关于c# - 使用 HttpClient 时出现 HttpRequestException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631841/

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