HTTP+SOAP的使用

在使用之前,我们需要了解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
%>

你可能感兴趣的:(HTTP+SOAP的使用)