私はクライアント用のAPIに取り組んでいます。以下の情報を受け取りました。
API Url: http://xyz-crm.example/WebAPI/Custom/project_name/XML/
Username: foobar
password: spameggs
非 WSDL モードで同じように PHP SOAP クライアントを構成する必要があります。私は次のように書いていますが、うまくいかないようです:
$wsdl = null;
$options = array(
'uri' => 'http://xyz-crm.example/WebAPI/Custom/project_name/XML/',
'location' => 'http://xyz-crm.exmaple.com/WebAPI/Custom/project_name/XML/',
'login' => 'foobar',
'password' => 'spameggs'
);
$client = new SoapCLient($wsdl, $options);
最初にAPIへのpingを成功させたいだけです。正常に動作しているかどうかを確認します。ここで何が間違っていますか?
更新 1
次の変更を加えました。
$wsdl = null;
$options = array(
'uri' => "http://xyz-crm.example/WebAPI/Custom/project_name/XML/",
'location' => "http://xyz-crm.example/",
'Username' => "foobar",
'Password' => "spameggs",
'soap_version' => '1.2'
);
$client = new SoapClient($wsdl, $options);
$client = $client->getListings();
エラーが発生します:looks like we got no XML document
[私が編集、ハクレ: この更新は、回答 #1へのフィードバックとして行われました。短縮URLを使用して場所オプションを変更し(理由はOPによって提供されていません)、soap_versionオプションを追加します(回答#1で提案されていますが、定数ではなく文字列(無効な値を含む)として追加されるため、不思議ではありませんこれによりエラーが発生します。正しいオプション値は回答 #1 (
SOAP_1_1
定数) に示されています。意図的に、SOAP_1_2
この例では正しい値が定数になります)。OP がコメントしたエラー メッセージは「SOAP Fault: Wrong version」でした。]
更新 2
次のことを試しましたが、それでも失敗します。
$listing = $client->getListings();
$request = $client->__getLastRequest();
実行は最初の行自体で停止し、2 番目の行に移動することはありません。
[私による編集、hakre: レビューではUpdate 1で間違った構成オプションが既に示されているため、 Update 2では対処されていませんが、それでも失敗しない場合は奇跡です。例外がスローされ、エラー/例外処理が行われないため、実行が停止します]