0

我正在使用 HttpClient 通过 WiFi 与 GoPro 摄像机通信,但出现以下错误。"服务器违反了协议。Section=ResponseHeader Detail=CR 必须后跟 LF " 虽然我已经通知他们,但我无法更改 GoPro 的 Web 服务器,因此我需要在客户端解决/忽略此问题。当我拨打这个电话时,使用 Fiddler 作为代理,Fiddler 纠正了这个问题,我的应用程序按预期运行。但是如果没有提琴手,我会收到协议违规消息。

从我所做的搜索中,这可以通过添加来解决<httpWebRequest useUnsafeHeaderParsing = "true"/>(参见HttpWebRequestElement.UseUnsafeHeaderParsing 属性),但这是一个 Windows 8 商店应用程序,没有配置文件。

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

有简单的解决方案吗?

4

2 回答 2

0

我自己没有尝试过,但也许你可以通过这样的代码更改元素http://social.msdn.microsoft.com/Forums/en-US/ff098248-551c-4da9-8ba5-358a9f8ccc57/how-do- i-enable-useunsafeheaderparsing-from-code-net-20

于 2013-09-02T20:12:11.470 回答
0

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

对于 Windows 应用商店应用程序,您可以使用MessageWebSocket:我尝试了类似的 Windows Phone 8.1 Silverlight 使用StreamSocket;请参阅如何在 Windows Phone/Store 应用程序中接受“不安全”的 HTTP 响应标头?

于 2014-08-11T23:14:34.643 回答