PHP SoapClient无法使用代理访问Web服务
在PHP中使用SoapClient时,我遇到了一个无法找到解决方案的问题 我正在使用wsdl文件的本地副本,并且我正在使用以下设置:PHP SoapClient无法使用代理访问Web服务,php,proxy,soap-client,Php,Proxy,Soap Client,在PHP中使用SoapClient时,我遇到了一个无法找到解决方案的问题 我正在使用wsdl文件的本地副本,并且我正在使用以下设置: $this->client = new \SoapClient(__DIR__ . '/../../some.wsdl', array( 'proxy_host' => $ip,
$this->client = new \SoapClient(__DIR__ . '/../../some.wsdl',
array(
'proxy_host' => $ip,
'proxy_port' => $port,
'trace' => 1,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_NONE
)
);
这将导致错误:调用时禁止:
$this->client->__call($method, $params)
我已尝试调用_ugetfunctions
$this->client->__getFunctions()
它给出了WSDL文件中所有函数的列表
我遗漏了什么吗?调试代码,如下所示:
<?php
try{
$client = new SoapClient($wsdl, $params);
$out = $client;
}catch(Exception $e){
$out = array('error' => $e, 'libxml' => libxml_get_last_error());
}catch(SoapFault $s){
$out = array('error' => $s, 'libxml' => libxml_get_last_error());
}
var_dump($out);
exit();
我试过这段代码,它给出了:objectSoapClient1 5{[\u proxy\u host]=>string13 192.xxx.xxx.x[\u proxy\u port]=>int80[trace]=>int1[\u soap\u version]=>int1[sdl]=>resource4类型未知},所以,在try{}部分添加{[error]=>objectSoapFault2 9{[message:protected]=>string9禁止的[string:Exception:private]=>string0[code:protected]=>int0[file:protected]=>string35/home/xxx/www/file.php[line:protected]=>int18[trace:Exception:private]=>array2{[0]=>array4{[function]=>string11\u-doRequest[class]=>string10-SoapClient[type]=>string2->[args]=>array5{[0]=>string276 93048[1]=>57http://url/proxy/file.asmx 我认为您错过了文件监视的配置代理或权限访问路径。不客气,您也可以观看php手册: