您的位置:首页 > 理论基础 > 计算机网络

HTTP+SOAP的使用

2004-10-25 09:39 513 查看
在使用之前,我们需要了解SOAP的数据包格式,以及数据包返回的格式,通过查看asmx文件,我们知道了他们的格式:
POST /WEBSERVICES/school.asmx HTTP/1.1
Host: www.chefbj.net
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.chefbj.com/show_school"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<show_school xmlns="http://www.chefbj.com">
<password>string</password>
</show_school>
</soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<show_schoolResponse xmlns="http://www.chefbj.com">
<show_schoolResult>
<xsd:schema>schema</xsd:schema>xml</show_schoolResult>
</show_schoolResponse>
</soap:Body>
</soap:Envelope>

下面就可以使用SOAP方式来获取数据
<%

'''''''''''''''''''''''''''''''''''''''''''''''
'Modiay by X
' 2003-12-30
'''''''''''''''''''''''''''''''''''''''''''''''
Const ForReading = 1, ForWriting = 2, ForAppending = 8 '文件操作常量
'''''''''''''''''''''''''''''''''''''''''''''''
WebServiceURL = "http://www.chefbj.net/WEBSERVICES/school.asmx" '调用URL(URI)
WebMethodName = "http://www.chefbj.com/show_school" '调用方法名

'soap请求,需要根据具体WEB SERVICES web方法更改
sentRequest="<?xml version='1.0' encoding='utf-8'?>"_
& "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "_
& "xmlns:xsd='http://www.w3.org/2001/XMLSchema' "_
& "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"_
& "<soap:Body>"_
& "<show_school xmlns='http://www.chefbj.com'>"_
& "<password>chef</password>"_
& "</show_school>"_
& "</soap:Body>"_
& "</soap:Envelope>"

responsefile="request.xml" '应答文件
'''''''''''''''''''''''''''''''''''''''''''''''

Set requestHTTP = CreateObject("Microsoft.XMLHTTP")

requestHTTP.open "POST", WebServiceURL, false

requestHTTP.setrequestheader "Content-Type", "text/xml"
requestHTTP.setrequestheader "charset", "utf-8"
requestHTTP.setrequestheader "SOAPAction", WebMethodName

requestHTTP.Send sentRequest

Response.Write("请求已经送出. HTTP request status= " & requestHTTP.status)

'将应答记录入文件
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.CreateTextFile(responsefile, True,true)

objTextFile.Write(requestHTTP.responsexml.xml)

objTextFile.Close
%>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: