讲解使用.NET如何调用PHP Web Service的方法(实例)(2)
1-2)TestWebService.wsdl代码 WSDL的代码比较长,当方法很多时,手敲代码是不太可能的。有一个巧的办法,就是也用.NET实现一个不含真正方法体的Web Serivce,然后通过http://***/TestWebService.asmx?wsdl的方法生成wsdl代码文件。 关于WSDL文件,我要说明特别说明两点: (1)soap:address结点是声明WebService的地址,在部署时要改成相应地址; (2)一维数组的声明类型为ArrayOfType,字符串数组为ArrayOfString。如果Type不是简单类型,则Type需要另外声明。 2).NET客户端代码 先要添加Web引用,地址为WSDL文件的Http地址。 .NET调用PHP Web Service调用代码(C#) .NET调用PHP Web Service总结: (一)PHP是一种弱类型语言,检查错误比较困难。array类型也与一般理解的数组不同,它也有类似Hashtable的用法。 (二)PHP Web Service方法的传入参数、返回值都至多有一个,因为真正调用时的参数和返回值,都是包装到一个对象中传送的。 (三)PHP Web Service也支持自定义类型和自定义类型数组等复杂类型,但不支持多组数组。 (四)若返回值需要是多张二维表时,我浅薄的以为,可以传化一组字符串数组传送,格式为 [表1行数],[表1列数],[表1列名1],[表1列名2],……[表1列名N],[表1中按行列存放的值] [表2行数],[表2列数],[表2列名1],[表2列名2],……[表2列名N],[表2中按行列存放的值]…… [表M行数],[表M列数],[表M列名1],[表M列名2],……[表M列名N],[表2中按行列存放的值] 按顺序将上面[]中的内容串成字符串数组,效率还不错,我测试10000行240列的数据