-
August 15th, 2016, 10:56 AM
#1
Parsing SOAP XML with Classic ASP
I'm typically a LAMP stack developer, so I'm a little out of my comfort zone on this one. I'm working on a classic ASP site that is doing a SOAP based XML API connection. It's worked in the past, but now we're updating the API to connect to a different application. Problem is, I'm not able to get the API to work any more and I've hit a wall with a generic 500 error. I've got detailed error reporting turned on, and this is all it returns:
Code:
An error occurred on the server when processing the URL. Please contact the system administrator.
I set up a SOAP client before writing this API, and it tested good. I've run several tests since to be sure that it is still working. I've inserted statements describing what the code is doing at each step through execution to see which ones show up and which ones do not. It appears to break at this line:
Code:
isSuccess = objDoc.getElementsByTagName("Status").text
If it is helpful, here is the full document.
Code:
<%@ language=vbscript %>
<% Option Explicit %>
<%
'============================================================'
' Authenticate a representative using the representative's
' user name (RepDID or EmailAddress) and password.
'============================================================'
'----------------------------------------------------------'
' Process User Submitted Data
'----------------------------------------------------------'
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'Load form fields into variables
Response.Write "<p>Loading form fields into variables</p>"
Dim repUsername, repPassword
repUsername = Trim(Request.Form("rep-username"))
repPassword = Trim(Request.Form("rep-password"))
'Set up basic Validation...
Response.Write "<p>Validating form</p>"
If repUsername = "" Or repPassword = "" Then
Response.Redirect ("../index.asp?login=error#login")
Else
'----------------------------------------------------------'
' Compose SOAP Request
'----------------------------------------------------------'
Dim xobj, SOAPRequest
Set xobj = Server.CreateObject("Msxml2.ServerXMLHTTP")
xobj.Open "POST", "http://api.domain.com/3.0/Api.asmx", False
xobj.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xobj.setRequestHeader "SOAPAction", "http://api.domain.com/AuthenticateCustomer"
SOAPRequest = _
"<?xml version=""1.0"" encoding=""utf-8""?>" &_
"<x:Envelope xmlns:x='http://schemas.xmlsoap.org/soap/envelope/' xmlns:api='http://api.domain.com/'>"&_
"<x:Header>" &_
"<api:ApiAuthentication>" &_
"<api:LoginName>string</api:LoginName>" &_
"<api:Password>string</api:Password>" &_
"<api:Company>string</api:Company>" &_
"<api:ApiAuthentication>" &_
"</x:Header>" &_
"<x:Body>" &_
"<api:AuthenticateCustomerRequest>" &_
"<api:LoginName>"&repUsername&"</api:LoginName>" &_
"<api:Password>"&repPassword&"</api:Password>" &_
"</api:AuthenticateCustomerRequest>" &_
"</x:Body>" &_
"</x:Envelope>"
Response.Write "<p>Sending SOAP envelope</p>"
xobj.send SOAPRequest
'----------------------------------------------------------'
' Retrieve SOAP Response
'----------------------------------------------------------'
Dim strReturn, objDoc, isSuccess
Response.Write "<p>Receiving SOAP response</p>"
strReturn = xobj.responseText 'Get the return envelope
Set objDoc = CreateObject("Microsoft.XMLDOM")
objDoc.async = False
Response.Write "<p>Loading XML</p>"
objDoc.LoadXml(strReturn)
Response.Write "<p>Parsing XML</p>"
isSuccess = objDoc.getElementsByTagName("Status")("Success").text
'----------------------------------------------------------'
' If user is valid set Session Authenticated otherwise
' restrict user and redirect to the index page and show error
'----------------------------------------------------------'
Response.Write "<p>Authenticating...</p>"
If isSuccess = "Success" Then
Session("Authenticated") = 1
'Session.Timeout = 1 '60 'Expire session 1 hours from current time
Response.Redirect ("../welcome.asp#AdvancedTrainingVideos")
Else
Session("Authenticated") = 0
Response.Redirect ("../index.asp?login=error#login")
End IF 'END - isSuccess
End IF ' END - Basic Validation...
End IF 'END - REQUEST_METHOD POST
%>
Any insights are very welcome.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|