1

プロバイダーからWebサービス(SOAP)にアクセスしようとしています。サーバーの応答を制御できません。私が使用しているこれには、コンストラクターでWDSLとオプションを渡すZend_Soap_Clientを使用して、getFunctionsを実行できますが、最初のSoapメソッドにアクセスしようとすると次のようになります。

[Sender] looks like we got no XML document

周りを見回してsoapUIを使用してサーバーから取得した回答を確認した後、回答にXML宣言がないことがわかりました。

<?xml version="1.0" encoding="XXXXXXX"?>

それで、Zend_Soap_ClientにXML宣言に基づくXML検証を省略させる方法はありますか?宣言の欠如が私の問題であると仮定します。

これに使用するコードは次のとおりです。

private $_connection_settings = array('login' => self::API_user, 'pwd' => self::API_password, 'key'=> self::API_Key);


private static $CONNEXION_PARAMS = array(                                            
                                        'soap_version'   => SOAP_1_1,
                                        'encoding'      => 'UTF-8'
                                     );

...

//somewhere in my code: 

$client = new Zend_Soap_Client('http://server_URL?wsdl', self::$CONNEXION_PARAMS);
$response = $client->fistSoapMethod($this->_connection_settings);            

そして、応答は割り当てられません。

ありがとう!

4

1 に答える 1

1

SOAP障害以外に、コードからの警告/エラーはありませんか?

それがWSDLかどうかはわかりません。オンラインツールを使用して、WSDLの検証をいつでも試すことができます。

getLastResponse()メソッドとgetLastRequest()メソッドを使用しましたか?リクエストの開始時にゴミを送信しているようです。テスト時に私がいつも行うもう1つのことは、WSDLキャッシュをオフにすることです。

ini_set("soap.wsdl_cache_enabled", 0);

于 2012-08-24T15:13:43.917 に答える