利用java后台进行geoserver查询
目录
使用后台的原因
由于项目要求,之前的函数必须要拆开封装,但对于jsonp来说,回调函数一旦分开,就会有异步的问题(jsonp永远都是异步的,除非你将处理都放到回调中去)。所以考虑从前台传参到后台方法去处理,后台再通过url来进行写入。
后台的主要实现方式
/**
* geoserver查询
* @param url 基地址
* @param layer 图层名
* @param key 键
* @param value 值
* @return
*/
public String Geo2server(String url,String layer,String key,String value){
StringBuilder json = new StringBuilder();
MsgBox box = null;
try {
url += "?service=WFS&version=1.1.0&request=GetFeature&typeName=" + layer +
"&outputFormat=application%2Fjson&filter=<Filter><PropertyIsEqualTo>" +
"<PropertyName>"+ key +"</PropertyName>" + "<Literal>"+ value +"</Literal>" +
"</PropertyIsEqualTo></Filter>";
URL newUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) newUrl.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
String inputLine = null;
while ( (inputLine = in.readLine()) != null) {
json.append(inputLine);
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return json.toString();
}
注意事项
由于没有做数据的分析,所以有可能返回错误的数据,但概率很小,只要你地址没写出,没数据的时候也能返回null,也能成功。
转载自:https://blog.csdn.net/u013323965/article/details/52522656