4

私はCIの初心者であり、次の場所にあるサーバーであるWebサービスWebLogicからXMLデータを取得したいと考えています。http://services.insw.go.id/web-services/nsw?operation.invoke = getListGA。サーバーからXML応答を取得したい。これはどのようにすればよいですか?

この関数をコントローラー(resttest.php)で作成しました

public function getRest()
{
    $this->rest->initialize(array('server' => 'http://services.insw.go.id'));

    $lartas = $this->rest->get('web-services/nsw',array('operation.invoke' => 'getListGA'),'xml');
    die(var_dump($lartas));
}

「array(0){}」のようなエラーが発生することがあります。更新すると、http ://services.insw.go.id/web-services/nswにアクセスしたときと同じように、すべてのHTMLビューが表示されます。 ?operation.invoke = getListGA

私は間違っているか、いくつかのステップが欠けていますか、またはこのコードを変更する方法について何か提案がありますか?

4

2 に答える 2

2

WebサービスがSOAP(単純なオブジェクトアクセスプロトコル)を使用しているように見えます。これはRESTではありません。PHPの組み込みのSoap拡張機能をSoapClientクラスで使用することをお勧めします。このようにして、XMLビューではなくxml結果を返すXML「リクエスト」をそのページに投稿するのは簡単です(私は推測します)。

  1. Soapをチェックしてくださいsoap拡張機能がサーバーにロードされています
  2. SoapClientについて読むhttp://php.net/manual/en/class.soapclient.php
  3. そのWebサービスがWSDL(Webサービス記述言語)ファイルを提供しているかどうかを確認してください。
  4. wsdlを使用してsoapクライアントのインスタンスを作成し、必要な関数を呼び出します。

PHP.netの簡単な例

$client = new SoapClient("http://localhost/code/soap.wsdl");
$something =  $client->HelloWorld(array());
echo $something->HelloWorldResult;
于 2013-03-02T13:59:53.240 に答える