2008-10-10 5 views
3

Je dois utiliser le objet XMLHTTP dans ASP classique afin d'envoyer des données vers un autre serveur via HTTP du serveur vers le serveur:Comment définir le jeu de caractères en utilisant XMLHttp Object pour un POST en ASP classique?

sURL = SOME_URL 

Set oXHttp = Server.CreateObject("Msxml2.XMLHTTP") 

oXHttp.open "POST", sURL, false 
oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset:ISO-8859-1;" 

sPost = SOME_FORM_DATA 

oXHttp.send(sPost) 

m'a dit (par le responsable du serveur consommant) que, selon que j'utilise ce code de Windows Server 2000 (IIS 5) ou Windows Server 2003 (IIS 6), il obtient Latin-1 (Windows 2000 Server) ou UTF-8 (Windows Server 2003) données codées.

Je n'ai trouvé aucune propriété ou méthode pour définir le jeu de caractères que je dois envoyer. Cela dépend-il de certains paramètres de configuration ou de script Windows (asp)?

Répondre

6

Vous pouvez définir la page de code utilisé en définissant l'option « SXH_OPTION_URL_CODEPAGE »

http://msdn.microsoft.com/en-us/library/ms763811(VS.85).aspx

Vous devez également utiliser l'objet « MSXML2.ServerXMLHTTP » pas l'objet « Msxml2.XMLHTTP » qui est pour le simple applications côté client enfilées.

4

La réponse ci-dessus se référant à SXH_OPTION_URL_CODEPAGE est un peu trompeuse. Cette option n'est pas liée à l'encodage du corps de la requête, ce à quoi je pense que la question portait.

Le problème avec l'exemple de code dans la question est l'utilisation de ":" au lieu de "=" dans l'en-tête. Il doit être réglé comme suit:

oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset = ISO-8859-1"

Questions connexes