Pergunta

Estou desenvolvendo um sistema componente plugin para o navegador eo servidor que transmite conteúdo com um tipo de codificação personalizada. Agora eu gostaria de ser capaz de detectar no lado do servidor se o cliente pode lidar com a codificação especial, e gostaria de mantê-lo consistente com a maneira usual que as coisas funcionam com HTTP, por isso a partir do navegador plugin que eu gostaria de adicionar um novo que codifica no cabeçalho do pedido Accept-Encoding. ou seja:.

Accept-Encoding: gzip, deflate, myencoding

Eu tentei implementar IHttpNegotiate e defini-lo como um cabeçalho adicional em BeginningTransaction, mas parece ignorá-lo ou que ele será substituído mais tarde.

Foi útil?

Solução

Por favor, não tente fazer isso. Qualquer abordagem que lhe permitiria modificar o cabeçalho Accept-Encoding (por exemplo Asynchronous Pluggable Protocol embrulho) seria necessariamente um truque, e não vai funcionar de forma confiável porque WinINET, proxies, etc, todos fazem suposições sobre o Accept-Encoding e Content-Encoding cabeçalhos, e a introdução de um novo esquema de não ser fiável.

Por exemplo, eu ouvi dizer que um dos proxies populares tratará codificações desconhecidos como GZIP e reescrever o cabeçalho Content-Encoding em resposta; obviamente que vai quebrar seu esquema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top