第一次试着用php调用http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx的验证qq是否在线的web服务header("Content-Type: text/html;charset=utf-8");$client = new SoapClient("http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl");
$p = $client->__call('qqCheckOnline', array());
$p = $p->getSupportProvinceResult->string;
print_r($p);
unset ($p);返回的错误为Fatal error: Uncaught SoapFault exception: [soap:Server] 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。 in C:\wamp\www\test_Jpgraph\testWS.php:5 Stack trace: #0 C:\wamp\www\test_Jpgraph\testWS.php(5): SoapClient->__call('qqCheckOnline', Array) #1 {main} thrown in C:\wamp\www\test_Jpgraph\testWS.php on line 5这种传参应该如何做另外试过一个无参的方法,成功返回了的header("Content-Type: text/html;charset=utf-8");$client2 = new SoapClient("http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?WSDL");
$p = $client2->__call('getSupportProvince', array ());
$p = $p->getSupportProvinceResult->string;
print_r($p);
unset ($p);
$p = $client->__call('qqCheckOnline', array());
$p = $p->getSupportProvinceResult->string;
print_r($p);
unset ($p);返回的错误为Fatal error: Uncaught SoapFault exception: [soap:Server] 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。 in C:\wamp\www\test_Jpgraph\testWS.php:5 Stack trace: #0 C:\wamp\www\test_Jpgraph\testWS.php(5): SoapClient->__call('qqCheckOnline', Array) #1 {main} thrown in C:\wamp\www\test_Jpgraph\testWS.php on line 5这种传参应该如何做另外试过一个无参的方法,成功返回了的header("Content-Type: text/html;charset=utf-8");$client2 = new SoapClient("http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?WSDL");
$p = $client2->__call('getSupportProvince', array ());
$p = $p->getSupportProvinceResult->string;
print_r($p);
unset ($p);
是说的这个?$client->__call('methodName',array('requestObj'=>$requestObj));
不好意思,我现在的代码贴做了一点,现在是header("Content-Type: text/html;charset=utf-8");$client = new SoapClient("http://www.webxml.com.cn/WebServices/ChinaZipSearchWebService.asmx?WSDL");
$params=array("number"=>"88888888");
$p = $client->__call('getSupportProvince', array ('parameters'=>$params));
$p = $p->getSupportProvinceResult->string;
print_r($p);
unset ($p);
据说php调用C#的web服务有点特别?能指名具体代码吗?
$client = new SoapClient("http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl");
$params=array("op"=>"88888888");
$p = $client->__call('qqCheckOnline ', array ('parameters'=>$params));
print_r($p);
unset ($p);
另外,这个服务的描述是http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?disco
我用过nusoap,可以搞C#的service
可以在这里下载代码包
http://sourceforge.net/projects/nusoap/我的代码忘记放哪里了
不过这个网上抓的代码应该足够兄台需要了吧
<?php
require_once('lib/nusoap.php');
$client = new nusoap_client('http://localhost:3333/Service.asmx?wsdl');$params = array(
'anId' => 3, //new soapval('anId', 'int', 3),
'action' => 'OMNOMNOMNOM',
'parameters' => array(
'firstName' => 'Scott',
'lastName' => 'Smith'
)
);
$result = $client->call('DoSomething', $params, 'http://tempuri.org/webservices/DoSomething', 'http://tempuri.org/webservices/DoSomething');
print_r($result);
?>
$res = $client->qqCheckOnline(array('qqCode' => '************'));//**替换QQ号
echo $res->qqCheckOnlineResult;//print Y OR N
这个网上有用nusoap的,有不用的,不过我能调用webservice就行,不过这个参数传递我还真没看懂,说是要传一个二维数组进去吗?
恩,这样可以弄好了,恩我还想问问你,本来是调用别的,想找个qq的试试,不过我用
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
天气预报服务,虽然也是可行的,但是那个服务似乎可以把诸如'北京'传给theCityName,而不是想下面这样,用对应的代码54511,但是我把'北京'传进去就报错了~分都给你吧
$client = new SoapClient("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
$res = $client->getWeatherbyCityName(array('theCityName' => '54511'));
print_r($res->getWeatherbyCityNameResult);
你看是这样吗,我下面这样的跑不了header("Content-Type: text/html;charset=utf-8");
$client = new SoapClient("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl");
$res = $client->getWeatherbyCityName(array('theCityName' => '北京'));
print_r($res->getWeatherbyCityNameResult);