7

私はクライアント用の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では対処されていませんが、それでも失敗しない場合は奇跡です。例外がスローされ、エラー/例外処理が行われないため、実行が停止します]

4

1 に答える 1

2

URI やファイルの末尾は問題ではありませ.jpgん。

同様の質問を見てください:この SOAP Fault は、私が考えていることを意味していますか?

リクエストの XML 出力だけでなく、エラー メッセージも質問に含めていただけると助かります。

インスタンスの配列の SOAP バージョンをSoapClient定数の 1 つに設定してみてください (別のものを試してください)。

new SoapClient($url, array("soap_version" => SOAP_1_1,.......

またはSOAP_1_2...

XML をデバッグするには、リクエストを送信する前/送信せずに、PHP SoapClient 呼び出しによって作成された Inspect XMLからの回答を試してください。

更新された質問のエラー メッセージは、PHP からのものではなく、Web サービスからの回答のように見えます。リクエストが実際に機能していることを意味します。

于 2013-10-29T09:08:59.037 に答える