注册 登录
编程论坛 VFP论坛

vfp和webservice接口的报文数据交互

xqmxqm01 发布于 2020-09-29 17:23, 2099 次点击
现在需要用vfp客户端访问webservice接口,当扫描一个送货单号码后需通过这个接口返回接收服务器端发送过来的xml报文,送货单的各个货物处理好后,再发送xml报文至端口。服务器上送货单有更新就发送xml报文过来接收,请教应给怎样去访问连接接口并取得数据报文和发送数据报文?(服务器的接口已经写好,无须开发)
4 回复
#2
厨师王德榜2020-09-30 11:15
以前弄过一个Web Service的,不过那个时候访问后,得到的是一个数组,不是XML,不过我想大同小异.参考代码如下
程序代码:
PUBLIC oSOAP  as Object
PUBLIC WebserviceUrl as String
oSOAP=Createobject("MSSOAP.soapclient30")  &&建立对象
WebserviceUrl="http://ws./WebServices/WS.asmx?wsdl"   &&改成自己要的URL

DIMENSION  Rs(1) as String
TRY  
oSOAP.MSSoapInit(WebserviceUrl,"WherWS","WherWSSoap",)
* MSSoapInit( )方法的语法格式如下:
*!*    oSoapClient.MSSoapInit(WSDLFile,ServiceName,Port,WSMLFile)
*!*    参数说明如下:
*!*    WSDLFile
*!*    字符型。该参数是WSDL文件的URL,用于描述由服务器提供的服务,或者是包含在WSDL文件中的一个字符串。如果该参数的第一个字符是“<”,表示该参数值是一个WSDL字符串;否则,表示该参数值是一个WSDL文件。
*!*    ServiceName
*!*    字符型。可选的。该参数是在WDSL文件中的服务。如果忽略该参数、或为NULL、或为空字符串(""),在初始化SoapClient30对象时,则使用在WSDL文件中指定的第一个服务。
*!*    Port
*!*    字符型。可选的。该参数是在WSDL文件的端口名称,用来包含在SOAP请求信息中的指定操作。如果忽略该参数、或为NULL、或为空字符串(""),在初始化SoapClient30对象时,则使用在WSDL文件中指定的第一个端口。
*!*    WSMLFile
*!*    字符型。可选的。该参数是WSML文件的URL,在使用自定义类型映射程序时,该参数是必须的。
*如何获得这些参数名称?使用浏览器或其他文本编辑器中打开所生成的WSDL文件,其中的service元素便是服务的名称,port元素是端口名称。

 recode=SPACE(500)

 Rs = oSoap.getRegion()

CATCH TO errExp
    IF errexp.errorno=1429 THEN
        MESSAGEBOX('错误号:'+LTRIM(STR(errexp.errorno)) + '  出错模块:' + ;
        errexp.PROCEDURE + '  出错行号:'+LTRIM(STR(errexp.lineno)) + ;
        '  错误的进一步描述:' + CHR(13) + ;
        '=====================================================================' + cHR(13) + ;
        +errexp.message , ;
        16,'提示:未成功连接互联网!')
    ENDIF
FINALLY
IF NOT EMPTY(rs) THEN
    thisform.grid1.RecordSource=''
    LOCAL ir as Integer
    CREATE CURSOR tmpP1( Col1  c(16) ,col2 c(10))
    FOR ir=1 TO ALEN(rs)
        INSERT INTO tmpP1( cc1,cc2 )  ;
            VALUES ( ... )
    ENDFOR
    SELECT tmpP1
    GO TOP
    thisform.grid1.RecordSourceType= 1
    thisform.grid1.RecordSource='tmpP1'
ENDIF
    RELEASE oSOAP
ENDTRY
#3
schtg2020-10-01 05:47
学习啦,谢谢!
#4
xqmxqm012020-10-10 13:58
谢谢喔
#5
xqmxqm012020-10-13 10:07
请问怎么发送数据报文?
1