CodeIgniter Web服务客户端
我是CI的新手,我想从Web服务WebLogic(位于http://services.insw.go.id/web-services/nsw?operation.invoke=getListGA的服务器)检索XML数据。我想要从服务器获取XML响应。我应该怎么做?CodeIgniter Web服务客户端
我提出的控制器上该功能(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));
}
有时会出现错误,如“阵列(0){}”和,如果我刷新,我得到的所有HTML视图,相同当我浏览到:http://services.insw.go.id/web-services/nsw?operation.invoke=getListGA
我错了,或缺少一些步骤,或者你有任何关于如何更改此代码的建议吗?
它看起来好像您的web服务正在使用SOAP(简单对象访问协议)。这不是REST。您将希望使用SoapClient类中内置的Soap扩展。通过这种方式,很容易将XML“请求”发布到该页面,该页面将返回xml结果而不是html视图(我假设)。 SOAP扩展的服务器
- 检查皂看看是否能Web服务提供了一个WSDL(Web服务描述语言)文件。
- 使用wsdl创建肥皂客户端实例并调用您需要的功能。
从PHP.net
$client = new SoapClient("http://localhost/code/soap.wsdl");
$something = $client->HelloWorld(array());
echo $something->HelloWorldResult;
简单的例子来获得一个XML响应,你不需要笨。具体来说它提供了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。
然后你就可以得到由下面的代码XML响应:
$client = new SoapClient('http://services.insw.go.id:80/web-services/nsw?WSDL');
//var_dump($client->__getFunctions());
$response = $client->getListGA();
echo $response;
这些代码并不需要笨。
注意:$client->__getFunctions()
将显示WSDL支持的所有函数以及函数所需的参数。
祝你好运