VB调用WebService(直接Post方式)并解析返回的XML
2014-09-01 15:30
337 查看
Function TodoTaskBySOAP(postURL As String,host As String, n As Integer,FilterItem() As String,OwnerSSICID() As String ,AppID() As String ,ToDoID() As String,Title() As String,Url() As String ,ExpireDate() As String,CreateTime() As String, Action() As String ,UpdateTime() As String ,Remark1() As String,Remark2() As String,Remark3() As String) As String On Error GoTo ErrSub Dim oXMLHttp As Variant Dim errcode As String Dim errmsg As String Dim postData As String Dim responseText As String Dim resStr As String Dim sXML As String Dim i As integer Dim oXML As Variant Set oXMLHttp = CreateObject("Msxml2.XMLHTTP") Dim objNodes As Variant Dim nodeValues As Variant If Not IsObject(oXMLHttp) Then Set oXMLHttp = CreateObject("Microsoft.XMLHTTP") If Not IsObject(oXMLHttp) Then MsgBox "缺少Msxml组件!",0 + 64,"错误" Exit Function End If End If If UBound(FilterItem) = n And UBound(OwnerSSICID)= n And UBound(AppID)=n And UBound(ToDoID)=n And UBound(Title)=n And UBound(Url)=n And UBound(ExpireDate)=n And UBound(CreateTime)=n And UBound(Action)=n And UBound(UpdateTime)=n And UBound(Remark1)=n And UBound(Remark2)=n And UBound(Remark3)=n Then postData = "<?xml version=""1.0"" encoding=""utf-8""?>" postData = postData & "<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/"">" postData = postData & "<soap:Body>" postData = postData & "<SaveToDo xmlns=""http://webservice.iipa/"">" postData = postData & "<n>"& n &"</n>" postData = postData + "<FilterItem>" For i = 0 To n -1 postData = postData &"<string>" & FilterItem(i) &"</string>" Next postData = postData + "</FilterItem>" postData = postData + "<OwnerSSICID>" For i = 0 To n -1 postData = postData &"<string>" & OwnerSSICID(i) &"</string>" Next postData = postData + "</OwnerSSICID>" postData = postData + "<AppID>" For i = 0 To n -1 postData = postData &"<int>" & AppID(i) &"</int>" Next postData = postData + "</AppID>" postData = postData + "<ToDoID>" For i = 0 To n -1 postData = postData &"<string>" & ToDoID(i) &"</string>" Next postData = postData + "</ToDoID>" postData = postData + "<Title>" For i = 0 To n -1 postData = postData &"<string>" & Title(i) &"</string>" Next postData = postData + "</Title>" postData = postData + "<Url>" For i = 0 To n -1 postData = postData &"<string>" & Url(i) &"</string>" Next postData = postData + "</Url>" postData = postData + "<ExpireDate>" For i = 0 To n -1 postData = postData &"<string>" & ExpireDate(i) &"</string>" Next postData = postData + "</ExpireDate>" postData = postData + "<CreateTime>" For i = 0 To n -1 postData = postData &"<string>" & CreateTime(i) &"</string>" Next postData = postData + "</CreateTime>" postData = postData + "<Action>" For i = 0 To n -1 postData = postData &"<int>" & Action(i) &"</int>" Next postData = postData + "</Action>" postData = postData + "<UpdateTime>" For i = 0 To n -1 postData = postData &"<string>" & UpdateTime(i) &"</string>" Next postData = postData + "</UpdateTime>" postData = postData + "<Remark1>" For i = 0 To n -1 postData = postData &"<string>" & Remark1(i) &"</string>" Next postData = postData + "</Remark1>" postData = postData + "<Remark2>" For i = 0 To n -1 postData = postData &"<string>" & Remark2(i) &"</string>" Next postData = postData + "</Remark2>" postData = postData + "<Remark3>" For i = 0 To n -1 postData = postData &"<string>" & Remark3(i) &"</string>" Next postData = postData + "</Remark3>" postData = postData + "</SaveToDo>" postData = postData + "</soap:Body>" postData = postData + "</soap:Envelope>" Call logInfo(postData) Call logInfo(URLEncode(postData)) oXMLHttp.Open "Post", postURL, False oXMLHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8" oXMLHttp.setRequestHeader "Content-length", Len(URLEncode(postData)) oXMLHttp.setRequestHeader "Accept-Language","zh-CN" oXMLHttp.setRequestHeader "SOAPAction","http://webservice.iipa/SaveToDo" oXMLHttp.setRequestHeader "Host",host oXMLHttp.Send URLEncode(postData) responseText = oXMLHttp.responseText Call logInfo("返回状态:" & oXMLHttp.Status) Call logInfo("返回字段:" + responseText) MsgBox responseText, 0 + 64,"提示" If oXMLHttp.Status = 200 Then sXML = oXMLHttp.responseText resStr = StrLeft(sXML,"</SaveToDoResult>") Set oXML = CreateObject("Microsoft.XMLDOM") oXML.async = False oXML.load(oXMLHttp.responseXML) Dim values As Variant 'Set objNodes = oXML.selectNodes("//SaveToDoResult") Set objNodes = oXML.selectNodes("//string") Forall objNode In objNodes MsgBox objNode.Text Print objNode.Text End forall ' MsgBox oXML.getElementsByTagName("SaveToDoResult").Length ' ' ForAll value In oXML.documentElement.childNodes ' Print value.nodename ' Print value.text ' End ForAll Else MsgBox "服务器返回异常!返回代码:" & oXMLHttp.Status, 0 + 16,"提示" End If Set oXMLHttp = Nothing Else Call logInfo("参数不对!" &" n = " & n &"FilterItem = " &UBound(FilterItem) & " OwnerSSICID = " & UBound(OwnerSSICID) &" AppID = " & UBound(AppID)&" ToDoID = " & UBound(ToDoID) &" Title = " & UBound(Title) &" Url = " & UBound(Url) & " ExpireDate = " & UBound(ExpireDate)&" CreateTime = " & UBound(CreateTime) & " Action = " & UBound(Action)&" UpdateTime = " & UBound(UpdateTime)&" Remark1 = " &UBound(Remark1)&" Remark2 = " & UBound(Remark2)&" Remark3 = " & UBound(Remark3)) End If ErrExit: Exit Function ErrSub: MsgBox "服务器异常!"& Err & " " & Error , 0 + 16 , "提示" Resume ErrExit End Function
相关文章推荐
- VB调用WebService(直接Post方式)并解析返回的XML
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- java调用webservice天气预报(SOAP请求的方式获取天气信息并解析返回的XML)
- axis调用webservice 返回xml解析
- 直接调用Webservice返回XML时需要配置web.config
- vb 解析webservice返回的xml整理
- php 调用接口的post方法,还有解析返回的xml数据
- JAVA调用返回XML格式数据的WebService,并通过XPath解析XML的应用
- axis2远程调用webservice例子(返回xml用dom4j解析)
- 解析HTTP POST方式请求的xml数据、本地XML文件数据, 并返回JSON字符串
- asp中解析通过asp调用webservice 返回的xml
- C#调用WebService并解析返回的XML
- asp通过json调用webservice接口,并获取返回的xml数据及解析
- 探讨:关于动态编译WebService为dll然后调用WebService的问题,无法返回xml文本
- dom4j方式访问远程WebService返回xml形式的String类型
- VB调用VC dll的返回方式
- .Net下采用GET/POST/SOAP方式动态调用WebService的简易灵活方法(C#)
- 提问:关于动态编译WebService为dll然后调用WebService的问题,无法返回xml文本
- java调用http,解析返回的xml