2012-09-01 24 views
5

Hoy me encontré con un problema con la codificación de agente de usuario cuando traté de utilizar HttpWebRequest para enviar una solicitud.Cómo cambiar la codificación de agente de usuario en HttpWebRequest?

Normalmente, el agente de usuario se compone de las letras latinas y puntuacion. Sin embargo, necesito simular las solicitudes web de una aplicación iOS cuyo UA contiene algunos caracteres Unicode (específicamente chinos).

Usando Fiddler para obtener la solicitud de prima, he encontrado que la aplicación utiliza la codificación Unicode dio en su UA. No pude PUBLICARLO en C#; Obtuve este error:

You may not try to send Unicode in UserAgent. But it is really important for my project. Now I can simulate the request of App without the bytes of UA.

¿Cómo puedo cambiar la codificación UA?

Respuesta

2

de acuerdo con los estándares (rfc 2616 (http/1.1), sec 2.2, 3.8. 14.43 y rfc 2047 (mime, part 3), sec 4, 5), no puede utilizar ninguna otra codificación, pero iso-8859-1 para cualquier campo de encabezado http como user-agent. Sin embargo

, se puede aplicar el esquema de codificación de RFC 2047 para mapear cadena Unicode en 8859-1 - cuerdas; en pocas palabras, en que se coloca el texto con un identificador de juego de caracteres y el sustituto de los puntos de código Unicode de los valores hexadecimales de la secuencia de octetos en su respectiva codificación.

ejemplo:

User-Agent: Million-€-Browser se convierte User-Agent: =?utf-8?q?Million-=e2=82=ac-Browser?=, con e2 82 ac siendo la secuencia de octetos UTF-8 del símbolo euro.

Cuestiones relacionadas