这是iserver发布的服务,现在想android通过传递参数,调用这个服务,获得空间查询的结果
json构造如下:
String url = "http://192.168.5.229:8090/iserver/services/spatialAnalysis-b12m/restjsr/spatialanalyst/datasets/b12_1@barea/spatialquery3d";
String analysisType = "INTERSECTS";// 默认查询:相交
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("type", "REGION");
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < point2DList.size(); i++) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("x", point2DList.get(i).x);
jsonObject1.put("y", point2DList.get(i).y);
jsonArray.put(jsonObject1);
}
jsonObject.put("points", jsonArray);
JSONObject body = new JSONObject();
body.put("operateRegion", jsonObject);
body.put("positionMode", "INTERSECTS");
body.put("bottomAltitude", bottomHeight);
body.put("extendedHeight", limitHeight);
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("attributeFilter", "");
body.put("sourceDatasetFilter", jsonObject1);
String s = body.toString();
URL httpurl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) httpurl.openConnection();
conn.setConnectTimeout(10000);
// 设置允许输出
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod("POST");
// 设置contentType
conn.setRequestProperty("Content-Type", "application/json");
DataOutputStream os = new DataOutputStream( conn.getOutputStream());
String content = String.valueOf(body);
os.writeBytes(content);
os.flush();
os.close();
if(conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStreamReader in = new InputStreamReader(conn.getInputStream());
BufferedReader bf = new BufferedReader(in);
String recieveData = null;
String result = "";
while ((recieveData = bf.readLine()) != null){
result += recieveData + "\n";
}
in.close();
conn.disconnect();
Log.e("msg", "quertPointBySpatial: "+result );
}
} catch (JSONException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
生成的Json参数如下:
{"operateRegion":{"type":"REGION","points":[{"x":113.3266251200566,"y":23.053786914728764},{"x":113.32662474278182,"y":23.053786658277005},{"x":113.32326017606414,"y":23.053787106296316},{"x":113.32326088882584,"y":23.05667035536284},{"x":113.32326424321552,"y":23.056690454972706},{"x":113.32326928307815,"y":23.056703159765902},{"x":113.32327585887036,"y":23.05671324111563},{"x":113.32328104770251,"y":23.056718606800775},{"x":113.32645086016392,"y":23.05671714079193},{"x":113.32662957498975,"y":23.05671576680439},{"x":113.32663041890272,"y":23.05671064496878},{"x":113.32663144890442,"y":23.05669943703532},{"x":113.32663210967725,"y":23.05668526483132},{"x":113.32663214433171,"y":23.056662408774052},{"x":113.32663093695668,"y":23.053794559388145},{"x":113.32662937428739,"y":23.05379190235328},{"x":113.32662797847605,"y":23.05378995100488},{"x":113.32662663647704,"y":23.053788386585047},{"x":113.32662516163485,"y":23.05378694869199},{"x":113.3266251200566,"y":23.053786914728764}]},"positionMode":"INTERSECTS","bottomAltitude":93,"extendedHeight":35,"sourceDatasetFilter":{"attributeFilter":""}}
post提交上去之后,不能获得返回的结果,请问这是哪一方面出错?