1

PHPを介して.NETWebサービスと対話しようとしています。サービスに接続でき、getFunctionsを呼び出すことができ、すべてのサービス関数のリストが返されます。私はsoapUIを使用してWebサービスをテストしましたが、soapUIを使用すると、すべての要求が問題なく機能します。

ただし、PHPを使用してサービス関数の1つを呼び出すと、一見空っぽの応答が返されます。

コード:

$client = new SoapClient("http://soapservice.com/soap.asmx?WSDL");

$params = array();

$params["userName"] = 'myUserName';     
$params["password"] = 'somePass1234';   

$locations = $client->GetStuff($params);

var_dump($locations);

$locations = $client->GetStuff($params)->GetStuffResult;    

var_dump($locations);

vardumpsの出力は次のとおりです。

object(stdClass)#35 (1) {
  ["GetStuffResult"]=>
  string(835807) ""
}
string(835807) ""

私が持っている最初の質問は...「空の」文字列を835807文字の長さにするにはどうすればよいですか?私の2番目の、そしてより明白な質問は、データがどこにあり、なぜデータにアクセスできないのかということです。soapUIは、応答がXMLであることを示していますが、この応答文字列ではまったく役に立たないことがわかります。助けてください!

4

1 に答える 1

2

$locationXMLが含まれている場合、出力は正しいが、ブラウザtext/plainにタグ/要素が表示されないため(のようなコンテンツタイプのヘッダーが送信されない限り)、ブラウザに「表示」されない可能性があります。$locationたとえば、を含む<foo>「XML文字列」をにエンコードする必要があります&lt;foo&gt;。試す:

echo htmlentities(print_r($locations, true));

...また:

header("Content-Type: text/plain");
var_dump($locations);

...またはブラウザで「ソースを表示」するだけです。

于 2012-07-18T15:44:11.090 に答える