in PHP

PHP的nusoap包一些可能会困扰你的几点

今天本来就用PHP5自带的SOAP已经获取了天气信息,但是传到虚拟主机来后才发现,主机不支持SOAP,囧了,只好换了nusoap这个已经没多少人用的SOAP类来实现了。但是这个过程中,真TM的艰辛啊,总是出这样那样的问题,查了好多地方,总算是搞定了。

当你遇到一些问题的时候,比如乱码,你可以试试这样。

$client = new nusoap_client(‘http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL’,$WSDL);
$client->soap_defencoding = ‘utf-8’;  //防止乱码
$client->decode_utf8 = false;
$client->xml_encoding = ‘utf-8’;

我就是加了这些代码消除乱码的,别人的webservice使用asp.net做的,编码不同吧。

然后如果你用$client->call(‘Methodname’,‘parm’);

实现不了的时候,试试这样:

$proxy=$client->getProxy();

$result=$proxy->Methodname(‘parm’);

我就是用call的方式怎么都实现不了,然后换成proxy就可以了。

如果用PHP5自带的SOAP就要简单多了,直接 $client=new sopclient(‘WSDLurl’);

$result=$client->Methodname(‘parm’);

一般就可以了,要智能多了