使用php Soapclient,我得到了异常:
Uncaught SoapFault exception: [HTTP] Proxy Authentication Required
但是当使用具有相同代理设置的web浏览器时,不指定该代理的任何凭据,我可以连接获得XML响应。
系统部门确保不需要认证。另外,我使用SoapUI只是配置代理来测试邮件,不需要凭据,我可以调用WS中的方法。
为什么php SoapClient抛出这个异常?下面是我使用的代码…
$this->client = new SoapClient( null, array(
'location' => 'http://www.xxxxx.dev',
'uri' => self::URI,
'proxy_host' => self::PROXY_HOST,
'proxy_port' => self::PROXY_PORT,
) );
下面解决异常
$this->client = SoapClient( self::URL , array(
'proxy_host' => self::PROXY_HOST,
'proxy_port' => self::PROXY_PORT,
'authentication' => SOAP_AUTHENTICATION_BASIC,
'stream_context' => stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => false
)
))
));
误解了文档,"WSDL文件的URI,如果在非WSDL模式下工作则为NULL",并且我期望第一个参数作为文件,而不是URL。在一些尝试中,我已经尝试过,但忘记使用SSL参数设置流上下文以跳过对等体验证。(可能SOAP_AUTHENTICATION_BASIC不是必需的)
希望对大家有所帮助