【问题标题】:Windows HttpClient response header invalid characterWindows HttpClient 响应标头无效字符
【发布时间】:2014-12-18 10:17:29
【问题描述】:

我正在使用 HttpClient postAsync 方法来发布和检索 json。它就像一个魅力。 但是如果服务器在响应头的任何字段中返回“Ö”字符,它就会抛出异常。

System.ArgumentException ---> System.ArgumentException: [net_WebHeaderInvalidControlChars]
Arguments:
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.7.60408.0&File=System.Net.dll&Key=net_WebHeaderInvalidControlChars
Parameter name: name
   at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)
   --- End of inner exception stack trace ---
   at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   at System.Net.Browser.ClientHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
--- 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()

【问题讨论】:

    标签: windows windows-phone-8 character-encoding dotnet-httpclient


    【解决方案1】:

    HTTP 标头仅是 ASCII。参见 RFC:https://www.rfc-editor.org/rfc/rfc2616

    Header 中的 Umlaute 只是协议违规,会抛出异常。

    【讨论】:

    • 我环顾四周,但还没有找到忽略无效标头的方法...似乎 HttpClient(在 SL/WinRT 上)根本无法处理带有无效字符的请求/响应在标题中...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2021-09-12
    • 1970-01-01
    • 2019-03-04
    相关资源
    最近更新 更多