获取手机号归属地省份、地区、手要卡类型开源接口地址:
http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
php调用代码:
首先需要学会如何调试 SOAP流,其实很简单,SoapClient 构造方法的第二个参数为数组,可以设置很多选项,比如调试的话就用到了trace。
[php]
$soap = new SoapClient('http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl',array('trace'=>1));
$ret1 = $soap->getMobileCodeInfo('15165337786', '');
//输出请求和响应
echo "Request :", htmlspecialchars($soap->__getLastRequest()),"<hr>";
echo "Response :", htmlspecialchars($soap->__getLastResponse());
[/php]
通过请求发现,xml其中有一个空的节点
这个本来是应该传递getMobileCodeInfo 方法的参数的,但是却没传递。。
然后看了你连接给出的 SOAP 请求和响应示例 发现 正确的请求参数为:
[php]
<mobileCode>string</mobileCode>
<userID>string</userID>
[/php]
很明显是自己用法错误。
那么正确的用法为:
[php]
$soap = new SoapClient('http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl');
$ret1 = $soap->getMobileCodeInfo(array('mobileCode'=>'15165337786','userID'=>''));
var_dump($ret1);
output : object(stdClass)#2 (1) { ["getMobileCodeInfoResult"]=> string(52) "15165337786:山东 淄博 山东移动全球通卡" }
[/php]