我是CI的新手,我想从Web服务WebLogic(位于:http://services.insw.go.id/web-services/nsw?operation.invoke=getListGA的服务器)检索XML数据.我想从服务器获取XML响应.我该怎么做?
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
我错了,或者错过了一些步骤,或者您对如何更改此代码有任何建议?
解决方法:
看起来您的Web服务使用SOAP(简单对象访问协议).这不是REST.您将希望在SoapClient类中使用PHP内置的Soap扩展.通过这种方式,可以轻松地将XML“请求”发布到该页面,该页面将返回xml结果而不是html视图(我假设).
>检查Soap肥皂扩展名已加载到您的服务器上
>阅读SoapClient http://php.net/manual/en/class.soapclient.php
>查看该Web服务是否提供WSDL(Web服务描述语言)文件.
>使用wsdl创建soap客户端的实例并调用所需的函数.
来自PHP.net的简单示例
$client = new SoapClient("http://localhost/code/soap.wsdl");
$something = $client->HelloWorld(array());
echo $something->HelloWorldResult;