【问题标题】:CodeIgniter Web Services ClientCodeIgniter Web 服务客户端
【发布时间】:2013-02-03 23:34:50
【问题描述】:

我是 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) { }”的错误,如果我刷新,我会看到所有 HTML 视图,就像我浏览到时一样:http://services.insw.go.id/web-services/nsw?operation.invoke=getListGA

我错了,还是遗漏了一些步骤,或者您对如何更改此代码有任何建议?

【问题讨论】:

    标签: php xml web-services codeigniter soap


    【解决方案1】:

    看起来您的 Web 服务正在使用 SOAP(简单对象访问协议)。这不是 REST。您需要将 PHP 的内置 Soap 扩展与 SoapClient 类一起使用。这样很容易将 XML“请求”发布到该页面,该页面将返回 xml 结果而不是 html 视图(我假设)。

    1. 检查 Soap,soap 扩展程序已加载到您的服务器上
    2. 了解 SoapClient http://php.net/manual/en/class.soapclient.php
    3. 查看该 Web 服务是否提供 WSDL(Web 服务描述语言)文件。
    4. 使用 wsdl 创建一个肥皂客户端实例并调用您需要的函数。

    来自 PHP.net 的简单示例

    $client = new SoapClient("http://localhost/code/soap.wsdl");
    $something =  $client->HelloWorld(array());
    echo $something->HelloWorldResult;
    

    【讨论】:

      【解决方案2】:

      要获得 xml 响应,您不需要 Codeigniter。具体来说,它提供 WSDL。在http://services.insw.go.id/web-services/nsw,您可以找到示例

      String wsdlUrl = "http://services.insw.go.id:80/web-services/nsw?WSDL";
      

      所以 WSDL API 将是 http://services.insw.go.id:80/web-services/nsw?WSDL

      然后您可以查看此页面以了解如何为您的 php.ini 安装soap。

      那么就可以通过如下代码得到一个xml响应:

      $client = new SoapClient('http://services.insw.go.id:80/web-services/nsw?WSDL');
      //var_dump($client->__getFunctions()); 
      
      $response = $client->getListGA();
      echo $response;
      

      这些代码不需要 Codeigniter。

      注意:$client->__getFunctions() 将显示 WSDL 支持的所有函数以及函数所需的参数。

      祝你好运

      【讨论】:

        猜你喜欢
        • 2014-09-04
        • 2010-11-09
        • 2010-09-17
        • 2020-10-23
        • 2013-06-29
        • 2014-05-21
        • 2011-10-11
        • 2014-01-18
        • 1970-01-01
        相关资源
        最近更新 更多