使用REST接口获取GeoServer中的图层列表
最近在工作的过程中,有一个需求是在外部程序中对GeoServer进行管理操作,通过查阅资料发现GeoServer的REST接口可以满足需求。REST接口使用HTTP调用的方式,无需登录Web管理界面就可以对GeoServer进行简单的调用和配置。
GeoServer官网对REST的配置API和示例的介绍地址为:http://docs.geoserver.org/stable/en/user/rest/index.html
下面的程序通过使用REST接口,请求GeoServer中图层的列表。
<?php $url = "http://localhost:8180/geoserver/rest/layers/"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//设置为true,表示获取的内容以字符串的形式返回 curl_setopt($ch, CURLOPT_VERBOSE, true);//设置为true,返回执行过程中的异常 curl_setopt($ch, CURLOPT_GET, True); $passwordStr = "admin:geoserver";//geoserver的用户名:密码 curl_setopt($ch, CURLOPT_USERPWD, $passwordStr); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept:application/json"));//HTTP请求头信息 $successCode = 200; $buffer = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if($info['http_code'] != $successCode){ $msgStr = "请求失败!"; echo $msgStr; }else{ $outputArray = json_decode($buffer, true); $layerInfos = $outputArray['layers']['layer']; foreach($layerInfos as $k => $v){ $layerNames[] = $v['name']; } echo json_encode($layerNames); } ?>
博客声明:
本博客中的所有文章,除标题中注明“转载”字样外,其余所有文章均为本人原创或在查阅资料后总结完成,引用非转载文章时请注明此声明。—— 博客园-pallee(http://www.cnblogs.com/pallee)