2009-09-10 2 views
0

Я отправляю XML-контент через HTTP-сообщение из Access VBA в Web-методы, используя объект XMLHTTP в MSXML. Вот код.Кодирование «<" and ">» при отправке XML через HTTP-сообщение

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 

Я получаю XML с "& ЛТ" и "& GT" вместо < и>. Если я пытаюсь сделать кодировку URL, все будет получено как текст ASCII на стороне получателя. Можете ли вы указать, что мне нужно сделать, чтобы получить допустимый формат XML.

+0

Я не вижу, что вы Кодировка URL вывода. –

+0

У VBA нет механизма кодирования URL. Я просто использую общий код. Функция UrlEncode (strData) дим I, strTemp, strChar, Strout, intAsc strTemp = уравновешивание (strData) Для I = 1 К Len (strTemp) strChar = MID (strTemp, I, 1) intAsc = Asc (strChar) Если (intAsc> = 48 И intAsc <= 57) Или (intAsc> = 97 И intAsc <= 122) Или (intAsc> = 65 И intAsc <= 90) Затем strOut = strOut & strChar Else Strout = Strout & "%" & Hex (intAsc) End If Next URLEncode = Strout End Function Будет ли это Солв Моя проблема? – Seshan

ответ

2

Вы должны правильно установить тип содержимого, попробуйте вместо этого:

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

Когда я включаю этот тип контента, я не получаю XML-контент в конце Reveiving. – Seshan