❶ php soap扩展做webservice的时候 如何传入数组或者对象参数
SOAP可以传递数组和对象,比较复杂不便详述。你可以在网上查阅SOAP的规范。SOAP的对象需要定义在wsdl里。这就要求java调用方也定义这些对象。
使用SOAP要注意一个问题:SOAP没有统一的标准,不同语言对SOAP的实现有微小差别,有可能导致不兼容。
编写SOAP的wsdl是件麻烦而且痛苦的事。你可以试试使用第三方库。Yii框架就提供一个强大的SOAP解决方案。你可以通过注释和类,自动生成wsdl。个人不推荐在PHP中使用SOAP,因为PHP不像其他语言类似JAVA、.NET,提供强大的SOAP支持。
你可以考虑轻量级API,也可以考虑XML-RPC。并不比SOAP差,而且很灵活。
望采纳,谢谢!
❷ php 做的web services 中的wsdl描述文件,我想定义某方法的参数数据类型为数组怎么定义
下面这样:
<part name="t_c" type="xsd:int[]" />
<part name="t_c" type="xsd:string[]" />
❸ 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_mp($client->__getFunctions());
print("");
var_mp($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帮助,这里带的是字符集编码,如果调用方法的参数里有中文,一定要指定字符集编码,否则会出错。
调
用web service前可以先调用SoapClient的__geunctions()和__getTypes()方法看一下你要调用的
web service暴露的方法,参数和数据类型,需要注意的是传入的参数名一定要和soapclient里面定义的一致,否则参数是传不过去的。
需要使用SoapClient的__soapCall()或__call()方法,具体使用方法可以查php的帮助文档。如果参数要求是一个结构体,请用类代替,如上面的代码。
另外发现个问题,如果web service方法返回的是xml格式的字符串,php接收到以后会自己把数据内容解析出来,而不是xml字符串.
❹ php生成WEBSERVICE。wsdl 不能传递参数
看看编码是否正确,也可以通过一些网络抓包工具来看看,转输的数据是不是格式正确等
❺ 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;/
❻ 怎么根据一段wsdl代码找出具体方法以及参数
可以引出为”可执行jar“(项目必须有mian方法),然后双击运行即可。
第一步:在项目上右击,选择”Export“,之后找到”Runnable Jar file“。
第二步:在”首橘Launch“下拉选中选择”main“方法入口类,然后选择”Browse“后,输入”jar“名称,点击”Finsh“脊祥即可完成可运行jar制樱芹搏作。
❼ PHP 怎样获取,wsdl的数据,有客户端
建立一个包含两个operations(int Adder(int,int))的Web服务
<?php
//server.php
require("nusoap/lib/nusoap.php"); //导入nusoap.php
$server=new soap_server(); //声明一个soap_server对象
$server->configureWSDL('HelloWorld','urn:HelloWorld'); // 配置WSDL
$server->wsdl->schemaTargetNamespace='urn:HelloWorld'; //定碰薯灶义目标命名空间
$server->register("Adder", //注册Adder
array('format'=>'xsd:int','fuck'=>'xsd:int'), //参数类型
array('return'手升=>'xsd:int'), //返回笑扮值类型
'urn:HelloWorld',
'urn:HelloWorld#Adder');
function Adder($a,$b)
{
return ($a+$b);
}
$HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:'';
$server->service($HTTP_RAW_POST_DATA);
?>
访问http://localhost/server.php?wsdl即可得该服务的WSDL文档
❽ php怎么生成wsdl文件
办法有两种:
1.zend studio生成
对于zend studio 9之前的版本貌似直接生成:
File ->New -> Other-> Webservice-> WSDL
对于zend studio 9需要安装wsdl插件:
1、打开zendstudio9,选择help(帮助)->welcome
2、在右边的列表中找到WSDL Support,勾选
3、点击Apply changes(应用修改)
4、zde会自动安装,然后提示要重启,点击restart now(现在重新启动)
wsdl支持安装完毕,下面我们来生成一个wsdl文件,步骤如下:
1、选择保存wsdl的项目文件夹
2、右键-new(新建)->other(其他)
3、在弹出的对话框中选择web services,在下级菜单中选择WSDL file,点击next进入下一步
4、命名你的wsdl文件,点击next进入下一步
5、修改target namespace(目标名称空间),其他不变,点击finish。
2.利用SoapDiscovery.class.php生成
❾ php怎么读取wsdl文档
正常情况只要
$client = new SoapClient('wsdl的url');
$Cardholder = $client->retrieveCardholder($a0,$a1,$a2);
就可以了
这种问题属于严重"环境相关",你那拥有测试环境比没有环境的其他人更有优势的
如果搞不定,也尽量把出错信息、代码等原始环境告诉其他人。 切忌自己解释概括
既然语法层面和使用层面都解决不了,你的问题属于“调试层面”,
请给出url和测试帐户,别人替你调试吧。
❿ 如何实现php wsdl webservice 让我的客户端访问
首先我创建的文件有:
api.php api的接口类文件
api.wsdl 我创建产生的最后要调用的接口文件
cometrue.php 注册service api类内容的所有内容的执行文件
creat_wsdl.php 创建wsdl文件的执行方法文件
SoapDiscovery.class.php 必须要调用的soap类文件(可在网上查询喊薯蚂下载)
第一步 :创建一个service的文件夹专门存放您的api接口项目
第二步:下载SoapDiscovery.class.php类文件,放在您的service文件夹里面
第三步:在手改service文件夹下面创建郑埋您自己api接口类文件api.php,