本文目录一览:
- 1、php webservice 调用错误出现 Fault occurred while processing
- 2、php调用sap和.net的webservices接口
- 3、php 中 webservice 是如何使用的 调用别人的接口 参数是如何传递的
- 4、php怎样通过SoapClient调用webservice接口
php webservice 调用错误出现 Fault occurred while processing
本地调用接口的时候的参数中有很多参数是空的,将这些参数替换为空字符串 ""再试试,说不准就好了。
对于我这个方法的问题追踪最终的产生原因 ,是webservice服务端的处理中没有空从参数进行处理,也就是说这是服务端的问题,客户端可以使用替换null为空字符串的方法进行解决。
php调用sap和.net的webservices接口
php连接sapwebservices接口
public function getwebservice($param){
$user = 'username';
$password = 'password';
$wsdl = '*****'; /*wsdl地址*/
$SOAP_CONFIG = array(
'login' = $user,
'password' = $password,
'trace' =true,
'soap_version'=SOAP_1_2,
'connection_timeout' = 50,
'encoding' = 'UTF-8',
'cache_wsdl' = WSDL_CACHE_NONE,
'keep_alive' = false
);
try {
$client = new \SoapClient($wsdl, $SOAP_CONFIG); //调用sap里的接口
/* $param= array(
'参数1' = '1',
'参数2' = '2',
'参数3' = '3',
'参数4' = '4');*/
$ve=$client-__call("ZSdSoInfo", array($param));
return $ve;
} catch (Exception $e) {
print $e-getMessage();
}
}
php链接.net接口
$ws = "http://*****?wsdl";//webservice服务的地址
$client = new SoapClient ($ws);
$result=$client-kelOtp(array('参数1'=参数1,'参数2'=参数2);
$a= $result-kelOtpResult;/
php 中 webservice 是如何使用的 调用别人的接口 参数是如何传递的
php调用web service还是非常简单的。下面用一个例子说明:
web service服务是查询QQ用户是否在线
使用php5开发客户端:
?php
try {
//$client = new SoapClient("HelloService.wsdl",array('encoding'='UTF-8'));
$client = new SoapClient("webservices/qqOnlineWebService.asmx?wsdl");
var_dump($client-__getFunctions());
print("");
var_dump($client-__getTypes());
print("");
class qqCheckOnline{
var $qqCode = "10000";
};
$arrPara = array(new qqCheckOnline);
$arrResult = $client-__Call("qqCheckOnline",$arrPara);//$client-qqCheckOnline($arrPara);
echo $arrResult-qqCheckOnlineResult . "";
} catch (SOAPFault $e) {
print $e;
}
?
代码确实很简单吧,创建SoapClient对象时,可以使用保存在本地WSDL文件,也可以使用远程的地址,后面的array数组里可以带上很多的参数,具体参数可以查php的SoapClient帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。-php调用webservice
调
用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的
web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。
需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。
另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.
php怎样通过SoapClient调用webservice接口
?php
header ( "Content-Type: text/html; charset=gb2312" );
/*
* 指定WebService路径并初始化一个WebService客户端
*/
$ws = "";//webservice服务的地址
$client = new SoapClient ($ws);
/*
* 获取SoapClient对象引用的服务所提供的所有方法
*/
echo ("SOAP服务器提供的开放函数:");
echo ('pre');
var_dump ( $client-__getFunctions () );//获取服务器上提供的方法
echo ('/pre');
echo ("SOAP服务器提供的Type:");
echo ('pre');
var_dump ( $client-__getTypes () );//获取服务器上数据类型
echo ('/pre');
echo ("执行GetGUIDNode的结果:");
$result=$client-getWeather(array('CityName'='zhengzhou','CountryName'='china'));//查询中国郑州的天气,返回的是一个结构体-php调用webservice
echo $result-GetWeatherResult;//显示结果
?