Asp классическая неопределенная строковая константа - PullRequest
0 голосов
/ 27 апреля 2018

Я искал в Интернете способ использования API-интерфейса SOAP с ASP classic, и я нашел что-то вроде этого кода:

<%

Response.Write "<br>START<hr>"

Set oXmlHTTP = CreateObject("MSXML2.ServerXMLHTTP")
oXmlHTTP.Open "POST", "URL Web Service", False 

SOAPRequest = _
  "<?xml version=""1.0"" encoding=""utf-8""?>" &_
  "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:aut=""URL.xsd"">"&_
    "<soap:Header/>" &_
    "<soap12:Body>" &_
        "<aut:authorize>" &_
        "<sessionToken>" &_ "SessionToken" &_ "</sessionToken>" &_
        "<appId>appMobileDesa</appId>" &_
        "<resource>/serviclub</resource>" &_
        "<action>GET</action>" &_
      "</aut:authorize>" &_
    "</soap:Body>" &_
  "</soap:Envelope>"

oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml;charset=UTF-8;action=""urn:Authorize"" 
oXmlHTTP.setRequestHeader "Content-Length", Len(SOAPRequest)
oXmlHTTP.setRequestHeader "Host", "URL:80"
oXmlHTTP.setRequestHeader "Connection", "Keep-Alive"  

oXmlHTTP.send SOAPRequest  

Response.Write oXmlHTTP.responseText

Response.Write "<br>END<hr>"
%>

Я заменил настоящие URL и токен сессии словами. По сути, это страница, которая вызывает API для запроса авторизации. Но я продолжаю получать ошибку 500, когда я вызываю страницу asp. Когда я посмотрел в журналы, я нашел это:

2018-04-27 18:19:17 10.5.42.121 GET /login/mobileYPF/autorizacion.asp |9|800a0409|Unterminated_string_constant 8080 - 10.5.42.121 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/7.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+Media+Center+PC+6.0;+.NET4.0C;+.NET4.0E) 500 0 0 49

Любые идеи о том, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 27 апреля 2018

Эта строка содержит неопределенную строковую константу: oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml;charset=UTF-8;action=""urn:Authorize""

Если вы пытаетесь заключить в кавычки urn:Authorize, это должно быть так:

oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml;charset=UTF-8;action=""urn:Authorize""" <- обратите внимание на закрытие <code>"

(Кроме того, "<sessionToken>" &_ "SessionToken" &_ "</sessionToken>" &_ недопустимый синтаксис.

Это должно быть "<sessionToken>" & "SessionToken" & "</sessionToken>" &_. _ не требуется, если вы находитесь на одной линии. Я понимаю, что это может быть отредактированный раздел для этого сообщения.)

...