未捕获的SoapFault异常:需要[HTTP]代理身份验证

时间:2015-06-10 08:15:52

标签: php soap proxy

使用php Soapclient我得到了例外:

Uncaught SoapFault exception: [HTTP] Proxy Authentication Required 

但是当使用具有相同代理设置的Web浏览器时,如果没有为该代理指定任何凭据,我可以连接获取XML响应。

系统部门确保无需进行身份验证。我还使用SoapUI只是配置代理来测试porpouses,而不再使用凭据,我可以调用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,
        ) );

1 个答案:

答案 0 :(得分:0)

解决异常后

$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)

希望它有助于某人