制限されたネットワーク/インターネットへのアクセスが制限された環境で作業しています。プロキシを使用して Web サービスを呼び出す必要があるためです。
これは、Web サービスと応答を呼び出している場所からの PHP コードです。
$client = new SoapClient("http: //www.xyz.com/abc/wsdls/login.wsdl", array("trace" => 1, "exceptions" => 1, 'proxy_host' => $proxy_host, 'proxy_port' => $proxy_port, 'proxy_login' => $proxy_login, 'proxy_password' => $proxy_password));
応答は
Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from ' http://www.xyz.com/abc/wsdls/login.wsdl ': failed to load external entity
エラーメッセージからURLをコピーしてブラウザに貼り付けると(同じプロキシ設定で)動作します。
2番目のシナリオは、変数の代わりに値を渡すと、異なる応答が得られることです
$client = new SoapClient("http: //www.xyz.com/abc/wsdls/login.wsdl", array("trace" => 1, "exceptions" => 1, 'proxy_host' => "192.168.0.3", 'proxy_port' => 3128, 'proxy_login' => "actualuserName", 'proxy_password' => "actualPassword"));
警告: SoapClient::SoapClient(http: //www.xyz.com/abc/wsdls/login.wsdl): ストリームを開くことができませんでした: HTTP 要求が失敗しました! HTTP/1.0 407 Proxy Authentication Required in /var/www/myproj/login.php 行 56
必要なプロキシ パラメータを渡しましたが、まだエラーが発生します。ドメイン名と IP アドレスの両方が、ファイアウォールのサーバー/プロキシ設定にリストされています。