在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先 SoapClient类
<?php *下面调用的即是其中一个 *这个方法是用来获得某省的城市的 *具体的说明可以在浏览器中输入 * http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl查看 $client->getSupportCity("福建");//这个方法要求的参数是string型或为空 错误信息如下: Fatal error: Uncaught SoapFault exception: [soap:Server] 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。 in D:\EclipseDocument\weather\Client.php:23 Stack trace: #0 [internal function]: SoapClient->__call('getSupportCity', Array) #1 D:\EclipseDocument\weather\Client.php(23): SoapClient->getSupportCity('??????') #2 {main} thrown in D:\EclipseDocument\weather\Client.php on line 23 试用 $client->__call('getSupportCity', '福建'); 一样出错 webmethod 说明: - <wsdl:types> - <s:schema elementFormDefault="qualified" targetNamespace="http://WebXml.com.cn/"> - <s:element name="getSupportCity"> - <s:complexType> - <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="byProvinceName" type="s:string" /> </s:sequence> </s:complexType> </s:element>
是什么原因导致的呢? 该怎么解决? 回答: .net 对php调用其webservice 有一个规则 代码如下 $param["arg1"]="value1"; $client->__Call('WebMethodName',array($param)); 键名 agr1 是方法 WebMethodName 的参数名,不能变 __call()函数 第一个参数是要调用的方法 第二个参数是二维数组
示例二、 web融合业务调用电信的服务器方法http://219.143.33.58/WebConsumeTest/WebConsume.asmx try{ $client = new SoapClient("http://219.143.33.58/WebConsumeTest/WebConsume.asmx?wsdl"); //$addResult = $client->__getFunctions(); //$timeResult = $client->webConsumeReq(array('SPID'=>"35101282",'productID'=>"135000000000000229025",'address'=>"13386530106",'content'=>"abc123")); //$addResult = $client->add(1,6); $addResult = $client->__call('webConsumeReq',array(array('SPID'=>"35101282",'productID'=>"135000000000000229025",'address'=>"13386530106",'content'=>"abc123"))); //$addResult = $client->__soapCall('webConsumeReq',array('SPID'=>"35101282",'productID'=>"135000000000000229025",'address'=>"13386530106",'content'=>"abc123")); var_dump( $addResult); }catch(Exception $e){ printf("Message=%s \n",$e->__toString()); }
调用成功。
|
2022-08-17
2022-07-18
2022-11-06
2022-08-17
2022-07-30
请发表评论