PHP使用nusoap来调用webService
2009-08-23 21:37
351 查看
最近一个项目,咱们的开发小团队需要用到webService,同事很快就架设好了 webService的服务器端,平台是用.NET(C#),我这边是用php调用。网上搜索到方法,开始都进行得比较顺利,由于是第一次用webService,看到活生生的数据展示出来,着实兴奋了一把,但是紧接而来的一个问题困扰了我不少时间,服务器端需要传四个参数,其中两个是.NET的out型,这两个可以通过数组自动返回值(PHP确实很强大),但是另外两个中的一个始终传不进去,让同事那边配合着修改webService服务程序也还是不行。最后通过读取请求代码发现,这个代码并没有出现在请求xml格式中,难道是参数写搞错了?再核对下,"pagesize"被我写成了"pageSize",再运行,终于通过。“细节决定成败,一个大小写也能搞疯人哪”,最后附上webService的服务器代码:
<?php
header("Content-Type: text/html;charset=utf-8");
require_once('lib/nusoap.php');
$client = new soapclient('http://www.xxx.com/webServiceData.asmx?WSDL', true);
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
$page=5;
$pageSize=50;
$param = array('page'=>$page,'pagesize'=>$pageSize,"","");
$result = $client->call('GetUserDataSetByPage', array('parameters' => $param));
print_r($param);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
}
else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
?>
PS:如果加上了
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
这两句返回的仍然是乱码,别忘记页面顶部加上:
header("Content-Type: text/html;charset=utf-8");
<?php
header("Content-Type: text/html;charset=utf-8");
require_once('lib/nusoap.php');
$client = new soapclient('http://www.xxx.com/webServiceData.asmx?WSDL', true);
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
}
$page=5;
$pageSize=50;
$param = array('page'=>$page,'pagesize'=>$pageSize,"","");
$result = $client->call('GetUserDataSetByPage', array('parameters' => $param));
print_r($param);
// Check for a fault
if ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
}
else {
// Check for errors
$err = $client->getError();
if ($err) {
// Display the error
echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
else {
// Display the result
echo '<h2>Result</h2><pre>';
print_r($result);
echo '</pre>';
}
}
?>
PS:如果加上了
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
这两句返回的仍然是乱码,别忘记页面顶部加上:
header("Content-Type: text/html;charset=utf-8");
相关文章推荐
- php使用NuSoap产生webservice结合WSDL让asp.net调用
- jre6的webservice使用Php类库nusoap调用的问题
- PHP使用SOAP调用.net的WebService问题
- php使用NuSoap调用java/C# webservice乱码问题
- 使用zeng studio 创建的php调用webservice soap简单实例
- PHP使用SOAP调用.net的WebService数据
- PHP使用SOAP调用.net的WebService问题
- NuSOAP简介 php中使用webservice
- PHP使用SOAP调用.net的WebService数据
- 用NuSoap实现php调用webservice
- PHP调用Webservice-NuSoap实例
- PHP使用NuSOAP调用Web服务的方法
- 使用zeng studio 创建的php调用webservice soap简单实例
- 简单地使用nusoap调用webservice
- PHP搭建WebService(免配置) NuSoap的使用
- PHP使用SOAP调用.net的WebService问题
- PHP使用NuSOAP调用Web服务的方法
- php nusoap 创建和调用webservice
- PHP调用Java的Webservice,使用jaxws。
- 在 PHP 中使用 SOAP 协议调用 Web服务(WebService)