最近一直在做算法模型等等,好久不碰系统开发这套东西,顶多自己做个ETL写个spark,正巧自己准备数据的过程中需要调用服务获得一批数据,难得的非常有趣,代码极其基础简单,记录下来也不错
import org.codehaus.jettison.json.JSONObject;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
public static double calArea(String fence) throws Exception {
String service = "http://hahhhh";
//简单粗暴的的GET请求方式,参数过长会报错,所以采用POST方式
// +"?" +
// "coor=" +
// fence
"116.3205,39.97502;116.315,39.88867;116.39328,39.88867;116.3205,39.97502"
// +"&ak=hahhhh";
URL url = new URL(service);
URLConnection conn = url.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setDoOutput(true);
conn.setDoInput(true);
//POST请求方式
PrintWriter fw = null;
fw = new PrintWriter(conn.getOutputStream());
fw.print("coor=" +
fence
// "116.3205,39.97502;116.315,39.88867;116.39328,39.88867;116.3205,39.97502"
+
"&ak=hahhhh");
fw.flush();
//GET请求方式
// conn.connect();
// Map<String, List<String>> map = conn.getHeaderFields();
// for(String key:map.keySet()){
// System.out.println(map.get(key));
// }
//读取服务返回结果
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
String res = "";
if ((line = br.readLine()) != null) {
JSONObject jo = new JSONObject(line);
res = jo.getJSONObject("result").getString("polygonarea");
}
return Double.parseDouble(res);
}