2016-06-29 32 views
0

プロキシオプションでのSoapClientクラスを初期化するときは、WSDLとそのメソッドが正しくプロキシを経由でアクセスされていますプロキシを使用したPHP SoapClient:プロキシを使用したスキーマへのアクセス方法

<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified"> 
    <xs:import namespace="http://example.com/webservice/cisbase" schemaLocation="http://example.com/ws/cis_base.xsd"/> 
    <xs:import namespace="http://de.ws.example" schemaLocation="http://example.com/ws/is_base_de.xsd"/> 
</xs:schema> 

$client = new SoapClient(
    WSDL_URL, 
    array(
     'proxy_host'  => PROXY_HOST, 
     'proxy_port'  => PROXY_PORT 
    ) 
); 

スキーマ(のschemaLocationが)しかし、指定したプロキシ経由でアクセス取得されていません

これはにつながる:だから、基本的のSoapClientがにアクセスしようとしている

SOAP-ERROR: Parsing Schema: can't import schema from ...

is_base_de.xsd失敗したプロキシはありません。

PHP SoapClientがこのように動作し、回避策がある理由はありますか?

答えて

0

私のコードで私はこれらのオプションを使用しており、私たちのプロキシとhttpsプロトコルでうまく動作します。私はそれがあなたのために働くことを願っています:)

 'proxy_host' => PROXY_HOST, 
     'proxy_port' => PROXY_PORT, 
     'stream_context' => stream_context_create(
      array(
       'ssl' => array(
        'verify_peer'  => false, 
        'verify_peer_name' => false, 
       ) 
      ) 
     ) 

よろしく。

+0

ありがとうございますが、httpsでは問題はありません。私たちの問題は、WSDLスキーマがプロキシなしでアクセスされることです。 – sleepless

0

試してみてください。

$client = new SoapClient(
    WSDL_URL, 
    array(
     'proxy_host'  => PROXY_HOST, 
     'proxy_port'  => PROXY_PORT, 
     'stream_context' => stream_context_create(
      array(
       'proxy' => "tcp://$PROXY_HOST:$PROXY_PORT", 
       'request_fulluri' => true, 
      ) 
     ), 
    ) 
); 

あなたはPHP documentationに他の可能なパラメータをチェックすることをお勧めします。

関連する問題