Google App EngineでPHPアプリケーションを実行しています。私は、PHPクライアントからリモートホストにSOAP 1.2 Webサービスコールを作成しようとしています。以下のコードを使用してのSoapClientを作成するときに、私は次のエラーを取得する:App Engine PHPアプリケーションでSoapClientを作成できませんでした
$opts = array(
'https'=>array('user_agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'),
'ssl' => array('verify_peer'=>false, 'verify_peer_name' => false)
);
$context = stream_context_create($opts);
$params = array (
'encoding' => 'UTF-8',
'verifypeer' => false,
'verifyhost' => false,
'soap_version' => SOAP_1_2,
'trace' => 1,
'exceptions' => 1,
'connection_timeout' => 30,
'stream_context' => $context,
'cache_wsdl' => WSDL_CACHE_MEMORY
);
libxml_disable_entity_loader(false);
$client = new \SoapClient("https://<host_ip_address>/webservice.asmx?wsdl", $params);
私が手にエラーがある:
ERROR: SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from '<host_ip_address>/webservice.asmx?wsdl' : failed to load external entity "<host_ip_address>/webservice.asmx?wsdl"
私は以下のモジュールがロードされていることを確認した:
php --info
Soap Client => enabled
...
XML Support => active
...
OpenSSL support => enabled
...
アプリのルートフォルダにあるphp.iniファイルには、次の情報が含まれています。
google_app_engine.enable_functions = "libxml_disable_entity_loader"
extension = “curl.so”
マイGAEプロジェクトでも請求が有効になっています。私がSoapClientを正常に作成するために何ができるかについてのアドバイスは、非常に高く評価されています。私はCURLとSoapUIを介してWebサービスに接続することができるので、Webサービスに何も問題がないと仮定します。
' 'は、SOAPサービスをホストするサーバーの実際のIPアドレスまたはホスト名に置き換えてください。 –
snakecharmerb
また、プライバシー上の理由から ''を隠している場合は、Webブラウザで 'https:// /webservice.asmx?wsdl'にアクセスできますか? 'wsdl'ファイルを返しますか? –
snakecharmerb
こんにちは@ snakecharmerb ...あなたの入力をありがとう。はい、プライバシーの理由からホストとIPアドレスをマスクしていました。はい、ブラウザからURLに移動すると、wsdlファイルを取得できました。 – EthanS