WSDL とサービス呼び出しのための PHP SoapClient プロキシ設定
認証情報を User-Agent に注入せずに、WSDL の読み込みとサービス呼び出しのための PHP SoapClient プロキシオプションを設定します。
リモート WSDL の読み込みは SoapClient のコンストラクタ内で発生することがあります。その最初の取得の前にプロキシを指定します:
$client = new SoapClient('https://service.example.com/api?wsdl', [
'proxy_host' => '203.0.113.10',
'proxy_port' => 8080,
'proxy_login' => getenv('PROXY_USER'),
'proxy_password' => getenv('PROXY_PASSWORD'),
'connection_timeout' => 5,
'exceptions' => true,
]);実際の WSDL、プロキシのホスト/ポート、想定する認証情報の取得元を使用します。ホストフィールドはアドレスで、ポートは別です。
| 失敗したとき | 調査すべきリクエストまたは操作 |
|---|---|
| クライアントの生成 | WSDL の取得またはドキュメント処理。 |
| インポートされたドキュメント/スキーマの処理 | 実際の追加取得 URL。 |
| SOAP メソッド呼び出し | WSDL で宣言されたサービスエンドポイント。別ホストの可能性があります。 |
キャッシュされた WSDL を使うワーカーは、別のマシンで失敗するリクエストを省略することがあります。キャッシュ設定と実際に失敗した URL を比較とともに残し、生成の成功だけを根拠にプロキシを変更しないでください。
proxy_login/proxy_password は 仲介者 を認証します。宛先の login/password と SOAP レベルのサービス認証は別の層の役割です。アカウントのようなヘッダーを User-Agent に入れるのではなく、専用のオプションを使用してください。必要なアプリケーションヘッダーは、サポートされたヘッダーインターフェースに属します。
記録する 操作、対象、およびチャレンジを発行した当事者 を、秘密情報を除いて。connection_timeout は接続の確立を制限するもので、長時間の SOAP 操作の総所要時間ではありません。