HTTP+SOAP的使用
2004-10-25 09:39
513 查看
在使用之前,我们需要了解SOAP的数据包格式,以及数据包返回的格式,通过查看asmx文件,我们知道了他们的格式:
下面就可以使用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
%>
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
%>
相关文章推荐
- C#通过构造Soap信息使用HttpWebRequest调用WebService
- 使用afnetworking和网络服务接口及soap发送并接收http/https请求:
- WebService开发(二) 如何使用Soap扩展 http://www.cnblogs.com/wayne-ivan/archive/2007/06/19/788541.html
- TCP/IP、HTTP、WEBSERVICE、SOAP、ICE都使用后才有感慨
- IOS 使用Http模拟SOAP请求Webservice时内容Unicode编码的实现
- TCP/IP、HTTP、WEBSERVICE、SOAP、ICE都使用后才有感慨
- 使用URL工具类调用webservice接口(soap)与http接口的实现方式
- WebService开发(一) 如何使用Soap头 http://www.cnblogs.com/wayne-ivan/archive/2007/06/19/788539.html
- 怎样让SoapHttpClientProtocol不使用系统默认代理
- 使用 STHTTPRequest 框架解析 Soap1.2 教程
- Web Service系列之实例之使用http.client发送SOAP POST请求
- 使用 STHTTPRequest 框架解析 Soap1.2 教程
- 使用IPV6访问HTTP、SOAP以及网络邻居
- 使用 STHTTPRequest 框架解析 Soap1.2 教程
- (转载)PHP使用header函数设置HTTP头的示例方法表头
- 使用HttpURLConnection下载文件
- IOS中http请求使用 cookie
- Java使用SOAP获取webservice实例解析
- 使用HttpHandler来监控HTML页面请求
- python--httplib模块使用