我正在开发一个浏览器插件和服务器组件系统,它使用自定义编码类型流式传输内容。现在我希望能够在服务器端检测客户端是否可以处理特殊编码,并希望保持与通常使用HTTP的方式一致,所以从浏览器插件我想添加一个新的在Accept-Encoding请求标头中编码。即:

Accept-Encoding:gzip,deflate,myencoding

我已尝试实现IHttpNegotiate并将其设置为BeginningTransaction中的附加标头,但它似乎要么忽略它,要么稍后会被覆盖。

有帮助吗?

解决方案

请不要试图这样做。任何允许您修改Accept-Encoding标头的方法(例如异步可插入协议包装)都必然是一个黑客,并且由于WinINET,代理等都对Accept-Encoding和Content-Encoding做出假设,因此无法可靠地工作标题和引入新方案将不可靠。

例如,我听说其中一个受欢迎的代理会将未知编码视为GZIP并重写Content-Encoding标头作为响应;显然这会打破你的计划。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top