当前位置: 首页 > 工具软件 > wsdl2php > 使用案例 >

php如何连接wsdl,PHP如何调用wsdl

张昊穹
2023-12-01

PHP如何调用wsdl,需要什么样的类,谁能给个详细的代码?谢谢

回复讨论(解决方案)

要看你的需求咯

$wsdl = “http://192.168.1.2/jaxws/services/test?wsdl”;

$client = new SoapClient($wsdl);

$param = array(‘arg0’=>’arg0′,’arg1’=>’arg1’);

$ret = $client->getUserinfoByID($param);

if ($ret->return){ print_r($ret->return);}

else{ echo ‘no user’;}

具体SoapClient需要php的soap支持,看phpinfo里有soap的话就可以了,

我也是这样调用的,但还是报错

wsdl 是给用户看的接口规范

只要你调用的方法和参数是正确的,有没有 wsdl 都是一样的

我也是这样调用的,但还是报错

报什么错?

$wsdl = “http://XXX?wsdl”;

$client = new SoapClient($wsdl);

var_dump($client->__getFunctions());

我调用var_dump($client->__getFunctions())显示下面的

Array

(

[0] => sysNotifyexTodoResponse sysNotifyexTodo(sysNotifyexTodo $parameters)

)

我该如何调用这方法。

$client->sysNotifyexTodo(参数);

如何设定参数还需要

var_dump($client->__getTypes());

看一下

var_dump($client->__getTypes());

结果:

Array

(

[0] => struct sysNotifyexTodo {

string arg0;

}

[1] => struct sysNotifyexTodoResponse {

int return;

}

)

那就是

$n = $client->sysNotifyexTodo(array(‘arg0’ => ‘参数值’));

非常感谢版主,问题已经解决了

请问版主,下一步我该如何接受返回的数据了?

wsdl 是给用户看的接口规范

只要你调用的方法和参数是正确的,有没有 wsdl 都是一样的

能帮我看下吗,相关信息如下:

$client->__getFunctions()内容如下:

Array ( [0] => ossRequestResponse ossRequest(ossRequest $parameters) )

$client->__getTypes();内容如下:

Array ( [0] => struct ossRequest { WsRequestParam in0; } [1] => struct WsRequestParam { string encryptInfo; string extendInfo; string requestContent; int requestNo; int requestSystemNo; int versionNo; } [2] => struct ossRequestResponse { string ossRequestReturn; } )

代码如下:

$client = new SoapClient($wsdl);

$acctInfo = array(

‘in0’=>array(

‘encryptInfo’=>”,

‘extendInfo’=>”,

‘requestNo’=>’001’,

‘requestSystemNo’=>’006’,

‘versionNo’=>’1’,

‘requestContent’=>'’

)

);

$tmp = $client->ossRequest($acctInfo);

为什么请求到不了接口那边呢,报:Fatal error: Maximum execution time of 30 seconds exceeded in C:wampappsdemows.php on line 25

错误

 类似资料: