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'=>'<oss-request><QryType>I</QryType><QryId>400506105998</QryId></oss-request>'
)
);
$tmp = $client->ossRequest($acctInfo);
為什麼請求到不了介面那邊呢,報:Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\apps\demo\ws.php on line 25
錯誤