Mar*_*ery 8 .net c# http .net-core
等待HttpClient.PostAsync响应时,有时会出现错误,指出“服务器返回了无效或无法识别的响应”:
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext()
Run Code Online (Sandbox Code Playgroud)
那是一个相当神秘的错误;我想我可以设想一下“无效”响应可能是什么(即语法无效的HTTP响应,例如直接跳到没有状态行的标头中的响应),但实际上是对HTTP的“无法识别”响应请求?该消息似乎是胡说八道。
在什么情况下实际上可以触发此错误?
在使用 http 方案调用调用仅限 https 的端点时,您可以 100% 地重现此情况。因此,例如在以下位置调用 API:
https://www.mysecureapi.com
Run Code Online (Sandbox Code Playgroud)
使用
http://www.mysecureapi.com
Run Code Online (Sandbox Code Playgroud)
Kur*_*ula -2
可能的情况是您在没有授权令牌或标头的情况下发出了 http 请求。如果您尝试调用安全方法或 api,则需要共享或验证安全令牌才能获取或发布数据。
| 归档时间: |
|
| 查看次数: |
5962 次 |
| 最近记录: |