2009-09-10 13 views
0

J'envoie un contenu XML via HTTP Post d'Access VBA aux méthodes Web, en utilisant l'objet XMLHTTP dans MSXML. Voici le code.Encodage "<" and ">" lors de l'envoi de code XML via HTTP Message

Dim objXmlHttp As Object 
Set objXmlHttp = CreateObject("MSXML2.ServerXMLHTTP") 
objXmlHttp.Open "POST", webServicePath, False 
objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 

Dim Response As String 
objXmlHttp.send wrt.output 

'OK status 
If objXmlHttp.Status = 200 Then 
    Response = objXmlHttp.responseText 
End If 
Set objXmlHttp = Nothing 

Je reçois le XML avec "& lt" et "& gt" au lieu de < et>. Si j'essaie de faire un encodage d'URL, tout est reçu en tant que texte ASCII du côté du destinataire. Pouvez-vous s'il vous plaît guider ce que je dois faire pour obtenir le format XML valide.

+0

Je ne vous vois pas l'URL codant pour la sortie. –

+0

VBA n'a pas de mécanisme de codage d'URL. Je n'utilise qu'un code commun. Fonction URLEncode (strData) Dim I, strTemp, strChar, Strout, intAsc strTemp = trim (strData) Pour I = 1 à Len (strTemp) strChar = MID (strTemp, I, 1) intAsc = Asc (strChar) Si (intAsc> = 48 Et intAsc <= 57) Ou (intAsc> = 97 Et intAsc <= 122) Ou (intAsc> = 65 Et intAsc <= 90) Puis strOut = strOut & strChar Sinon Strout = Strout et "%" & Hex (intAsc) End If Next URLEncode = Strout End Function Est-ce que ce solv e mon problème? – Seshan

Répondre

2

Vous devez définir correctement le type de contenu, essayez ceci:

objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=""utf-8""" 
+0

Lorsque j'inclue ce type de contenu, je n'obtiens pas le contenu XML dans la fin de la récupération. – Seshan