2012-03-16 22 views
7

私はXML要求を取得しようとしています。これによりgetLastRequestが何も返さないのはなぜですか?

$cgProxy = new SoapClient($WSDL_URL,array('trace' => 1)); 

try { 
     $result = $cgProxy->OrderCreate($cgOrder); 

} catch (SoapFault $exc) { 
     var_dump($exc); 
     echo "Request:\n" . $cgProxy->__getLastRequest(), "\n"; 
     echo "Response:\n" . $cgProxy->__getLastResponse() . "\n"; 
} 

は、私は、$ EXCダンプからSOAPサーバーのエラーを取得します。しかし、getLastRequestは何も返されていないようです。何かご意見は?

私もhtmlspecialchars()とhtmlentities()を試してみましたが、成功しませんでした。 。 。

+0

これを解決しましたか?私は、パラメータの配列を送信している状況もありますが、__getLastResponse()はパラメータが渡されていない空のSOAPラッパーを示しています。 – TonyTheJet

+0

私は同じ問題を抱えていましたが、何も表示されませんでした。私はページのソースコードでその応答を見つけました(ブラウザのコンテキストメニューから開きます)。 –

答えて

11

getLastRequest()

このメソッドは、のSoapClientオブジェクトがTRUEに設定されたトレースオプションを使用して作成された場合にのみ機能します。

$client = new SoapClient("http://myservice/?WSDL",array("trace"=>1)); 

この場合は私のために働きます。

+0

私もこの問題を抱えており、トレースを有効にしていますので、これで問題は解決されません。 – SublymeRick

+0

私の元の投稿に示したように、問題は私のために存在していました。 – evan

3

ブラウザのXMLが文字列として印刷されない可能性があります。 もしそうなら、このような何かしてみてください:私はあなたが実際に要求を行うことはありません

その可能これが遅いですけど、...

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n"; 
+0

私は助けてくれませんでしたが、これを可能性として確認する価値があることを認識していました。 – johnsnails

1

を。 PHPがSOAP呼び出しの作成に失敗した場合、XMLリクエストを送信している場所に到達することはありません。エラーログにPHP SOAPエラーがないかチェックしてください。

関連する問題