zoukankan      html  css  js  c++  java
  • 使用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);
        }
    ?>
  • 相关阅读:
    RestTemplate proxy 设置方式
    一道关于主键,闭包的软考题------关系代数复习-码,范式,闭包求解
    MyBatis的XML中使用内部类的方式
    MyBatis SpringBoot 杂记
    服务器安装笔记
    UML符号
    npm 设置代理
    国外一家代码网站
    设计模式复习
    docker 列出每个容器的IP
  • 原文地址:https://www.cnblogs.com/pallee/p/3098898.html
Copyright © 2011-2022 走看看