vfp和webservice接口的报文数据交互
现在需要用vfp客户端访问webservice接口,当扫描一个送货单号码后需通过这个接口返回接收服务器端发送过来的xml报文,送货单的各个货物处理好后,再发送xml报文至端口。服务器上送货单有更新就发送xml报文过来接收,请教应给怎样去访问连接接口并取得数据报文和发送数据报文?(服务器的接口已经写好,无须开发)
2020-09-29 17:23
程序代码: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
2020-09-30 11:15
2020-10-01 05:47
2020-10-10 13:58
2020-10-13 10:07