当前位置: 代码迷 >> PB >> PB经过SOAP访问网络
  详细解决方案

PB经过SOAP访问网络

热度:273   发布时间:2016-04-29 05:16:50.0
PB通过SOAP访问网络
[img=http://][/img]我安装了一个PocketSOAP1.5.4的工具,然后在PB中访问网络,代码如下

OLEObject ole_soap,ole_http
ole_soap = CREATE OLEObject
ole_http = CREATE OLEObject

//声明pocketSOAP.Envelope对象
long ll_result,ll_i 

ll_result = ole_soap.ConnectToNewObject("pocketSOAP.Envelope.11")
if ll_result <> 0 then
MessageBox("系统提示","连接pocketSOAP.Envelope.11失败!返回参数:"+string(ll_result))
goto ret
end if  

ole_soap.SetMethod(method, url)

ole_soap.Parameters.Create("param",base64encode(sessionid))

//声明pocketSOAP.HTTPTransport对象
long ll_result2

ll_result2 = ole_http.ConnectToNewObject("pocketSOAP.HTTPTransport")
if ll_result2 <> 0 then
MessageBox("系统提示","连接pocketSOAP.HTTPTransport失败!返回参数:"+string(ll_result2))
goto ret
end if

//发送请求
ole_http.Send(url,ole_soap)


//解析返回结果
ole_soap.Parse(ole_http)     ------此句报错,错误码如下

//无返回值
if ole_soap.Parameters.Count = 0 then
goto ret
end if

ret:
ole_soap.DisconnectObject()
Destroy ole_soap
ole_http.DisconnectObject()
Destroy ole_http

--------------------------错误---------------------
错误编号:35
错误信息:error calling external object function parse at line 58 in function f_ws_logout of object f_ws_logout
出错位置:f_ws_logout
出错对象:f_ws_logout
出错事件:f_ws_logout
出错代码行:58
请重新启动本系统
如果仍有该问题,请与软件供应商联系

------解决思路----------------------
soap是WebService的基本协议吧。
通过增加断点产看变量是否实例化了
------解决思路----------------------
PocketSOAP1.5.4是PocketPB中的吧?

没太用过,看提示应该是PB对soap支持的不好,或者你代码写的有问题
------解决思路----------------------
帮顶
------解决思路----------------------
问题应该出在parse这个方法的参数类型PB不支持。研究中...
  相关解决方案