"服务器的含义返回了无效或无法识别的响应"在HttpClient中

时间:2017-08-23 15:22:24

标签: c# .net 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()

这是一个非常神秘的错误;我想我可以设想一个&#34;无效&#34;响应可能是(即语法无效的HTTP响应,如直接跳转到没有状态行的标题的响应),但实际上是什么&#34;无法识别&#34;响应HTTP请求?这条消息似乎是胡说八道。

什么情况下实际上可以触发这个错误?

2 个答案:

答案 0 :(得分:0)

使用http计划的调用调用仅https端点时,您可以100%地重现该时间。例如,在以下位置调用API:

https://www.mysecureapi.com

使用

http://www.mysecureapi.com

答案 1 :(得分:-2)

可能的情况是您在没有授权令牌或标头的情况下发出了http请求。如果您尝试调用安全方法或api,则需要共享或验证安全令牌才能获取或发布数据。