HttpClient,服务器提交了协议违规段= ResponseHeader Detail = CR必须后跟LF

时间:2013-09-02 20:00:54

标签: c# windows-store-apps

我正在使用HttpClient通过WiFi与GoPro相机通信,但是我收到以下错误。 “服务器提交了协议违规。部分= ResponseHeader详细信息= CR必须后跟LF ”虽然我已通知他们,但我无法更改GoPro的Web服务器,因此我需要解决/忽略此问题。客户端。当我使用Fiddler作为代理进行此调用时,Fiddler会更正问题并且我的应用程序按预期运行。但是,如果没有fiddler,我会收到违反协议的消息。

从搜索结果中我可以通过添加<httpWebRequest useUnsafeHeaderParsing = "true"/>(请参阅HttpWebRequestElement.UseUnsafeHeaderParsing Property)来解决此问题,但这是一个Windows 8商店应用,并且没有配置文件。

一个选项是编写自定义处理程序并将其注入HttpClient ctor,但我不知道从哪里开始使用我自己的自定义处理程序,对于应该内置的东西来说似乎是一件很大的努力。

有简单的解决方案吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

不幸的是,编写自己的处理程序并不起作用,因为在返回响应时系统的HttpClientHandler会在自定义处理程序之前被调用。

对于Windows应用商店应用,您可以使用MessageWebSocket:我使用StreamSocket尝试了类似的Windows Phone 8.1 Silverlight;见How can I accept "unsafe" HTTP response headers in a Windows Phone/Store app?