1

我每天使用标准 HTML 和经典 ASP 编写代码。我被要求构建一个小的 API,它将使用我们的 ASP/html 平台和 SQL Server 数据库。我在处理 ASP/SQL Server、HTML 等方面没有任何问题。我什至可以编写 XML 请求来查询我们的服务器。但是我不知道从哪里开始设置服务以“侦听”入站 XML 请求。我准备了大约十几个请求/响应例程,但不知道如何对接收该请求的页面进行编码。

有人可以伸出援手吗?

例如:

我们请求他们的方法/功能之一是简单的类别列表请求。使用SOAP,我可以很好地发出请求,只是我不知道如何在服务器端形成接收端来处理请求和响应。

我已经提出了下面的请求,我只需要知道如何处理 Web 服务页面来接收这个请求并用数据进行响应。任何帮助将不胜感激。请看下文。

要发送的 VAR

DealerID
UserID
Password
Dept

代码:

DIM wagConnect, WAGRequest
wagConnect = "http://www....../catreq.asp"

Dim strResult, strNamespace, strFunction
DIM wagResponse, xmldom, xmlresponse
Dim objXMLHTTP : set objXMLHTTP = Server.CreateObject("Msxml2.XMLHTTP.3.0")

' strNamespace="urn:externalwsdl"
' strFunction="add_line"
' area_code

WAGRequest = "<?xml version=""1.0"" encoding=""utf-8"" ?>" & _
             "<soapenv:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/"">" & _
             "<soapenv:Body>" & _
             "<Get_Categories xmlns=""urn:externalwsdl"">" & _
             "<DealerInfo>" & _
             "<DealerID>DealerTest</DealerID>" & _
             "<UserID>K850</UserID>" & _
             "<Password>1234567Pass</Password>" & _
             "</DealerInfo>" & _
             "<CatInfo>" & _
             "<Dept></Dept>" & _
             "</CatInfo>" & _
             "</Get_Categories>" & _
             "</soapenv:Body>" & _
             "</soapenv:Envelope>"

objXMLHTTP.open "POST", "" & wagConnect & "", False
objXMLHTTP.setRequestHeader "Content-Type", "text/xml; charset=UTF-8"
objXMLHTTP.setRequestHeader "Content-Length", Len(WAGRequest)
'objXMLHTTP.setRequestHeader "SOAPMethodName", strFunction
objXMLHTTP.setRequestHeader "SOAPAction", wagConnect
'strNamespace & "#" & strFunction

'send the request and capture the result
Call objXMLHTTP.send(WAGRequest)

xmlresponse = objXMLHTTP.responsetext

wagResponse = ("<pre>"& replace(replace(xmlresponse, "<", "&lt;"), ">", "&gt;<br>") &"</pre>")

Set xmldom = Server.CreateObject("Microsoft.XMLDOM")
xmldom.async = false
xmldom.loadxml(objXMLHTTP.responsexml.xml)

IF objXMLHTTP.status <> 200 THEN 
   wagResponse = "Could not get XML data."
END IF

'Response elements and attributes

'Result-Code (1 = Success, 0 = Failed)
'Category Count {Cat_Count, int} (Number of Categories returned)
'Category
'Child elements:    'CatName {Cat_Name, nvarchar} (Short Text)
'Category Subtitle {Cat_Desc, nvarchar} (SubTitle)
'Category Desc {Cat_Memo, ntext} (long description)
'Picture URL {Cat_Pic, ntext} (URL)'

'ResultCode = xmldom.getElementsByTagName("result-code")(0).text

If ResultCode = 1 THEN
   CatCnt = xmldom.getElementsByTagName("Cat_Count")(0).text
   CatName = xmldom.getElementsByTagName("Cat_Name")(0).text 
   CatDesc = xmldom.getElementsByTagName("Cat_Desc")(0).text 
   CatMemo = xmldom.getElementsByTagName("Cat_Memo")(0).text 
   CatPic = xmldom.getElementsByTagName("Cat_Pic")(0).text 
End if

谢谢你的帮助!

4

1 回答 1

1

您应该简单地制作一个脚本,通过 POST 以 xml 格式获取指令。然后脚本应该从发布的 xml 内容中检索其变量,然后生成 xml 输出并通过 response.write() 轻松发送

于 2013-01-09T19:55:51.093 回答