Использование Classic ASP для публикации XML-данных в веб-сервисе - сервер не будет принимать строку - PullRequest
1 голос
/ 28 марта 2012

Я пытался вызвать веб-сервис со следующим тестовым кодом.По сути, я пытаюсь отправить строку данных XML на сервер, используя классический ASP, и получить ответ.Теперь я застрял здесь на несколько дней, потому что сервер не собирает данные.Вот ответ, который я получил:

<?xml version="1.0"?> 
<MAG_NotifyResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <EchoToken /> 
  <PartnerId />
  <ReturnCode>600</ReturnCode> 
  <returnMessage>Empty String Received</returnMessage>
</MAG_NotifyResponse>

Я не знаком с XMLHTTP, поэтому я не уверен, правильно ли я его использовал?или я должен использовать другой метод.Я пробовал различные комбинации настроек, но ни одна из них не работала.Например,

  • Я отправляю строку данных без заголовка SOAP - он жаловался, что не использовал правильное пространство имен
  • Я пробовал различные типы контента: "application / x-www-form-urlencoded "или" application / soap + xml; charset = utf-8 "- он пожаловался на то, что я не использовал правильный тип носителя

Любая помощь приветствуется!

Вот мой тестовый код:

<%
DIM PostData, strStatus, strRetVal, postUrl

PostData = _
"<?xml version=""1.0"" encoding=""utf-8""?>" &_
"<env:Envelope xmlns:env=""http://www.w3.org/2003/05/soap-envelope"" xmlns:ava=""http://AvailReceive/AvailRq"">" &_
  "<env:Header />" &_
  "<env:Body>" &_
     "<ava:AvailRq xmlns=""http://AvailReceive/"">" &_
        "<AvailRQString>" &_
          "<MAG_AvailNotify>" &_
             "<EchoToken>b9cdaa88-b320-4d94-9be5-fc5478729c8b</EchoToken>" &_
             "<PartnerID>ONR</PartnerID>" &_
             "<HotelCode>GLAS</HotelCode>" &_
             "<Avail><AvailDet><AvailDate>2012-03-20</AvailDate><Accom>C2T</Accom>" &_
             "<AvailRooms>3</AvailRooms></AvailDet></Avail>" &_
          "</MAG_AvailNotify>" &_
        "</AvailRQString>" &_
     "</ava:AvailRq>" &_
   "</env:Body>" &_
"</env:Envelope>"

response.write("req=" & Server.HTMLEncode(PostData) & "<br/>len=" & len(PostData))

postUrl = "https://services.itsrezexchange.com/ITSTESTAvailUpdate/availrq.asmx"

Set xmlHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlHTTP.open "POST", postUrl, false
xmlHTTP.setRequestHeader "Content-Type", "text/xml; charset=utf-8" 
xmlHTTP.setRequestHeader "SOAPAction", "http://AvailReceive/AvailRq"
xmlHTTP.send PostData

strStatus = xmlHTTP.Status
strRetval = xmlHTTP.responseText
set xmlHTTP = nothing
response.write("<br/>") 
response.write("status=" & strStatus & "<br/>resp=" & strRetval)
%>

1 Ответ

0 голосов
/ 30 марта 2012
...