package cn.gis;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

/**
* 路径分析
*/
public class GISData {

/**
* Get请求方式
*
* @param urlAddress 请求地址
* @param encodedType 编码方式,UTF-8,GBK...
*/
public static String getData(String urlAddress, String encodedType) {

try {
URL url = new URL(urlAddress);
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 打开和URL之间的联接

// 获取返回数据,使用 utf-8 将流数据进行转码,否则会产生乱码
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encodedType));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close(); // 关闭流
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}

/**
* POST 请求方式
*
* @param urlAddress 请求地址
* @param encodedType 编码方式,UTF-8,GBK...
*/
public static String postData(String urlAddress, String encodedType) {
try {
URL url = new URL(urlAddress);
URLConnection conn = url.openConnection(); // 打开联接
// 使用POST请求,是否向connection输出/输入,因为这个是post请求,参数要放在http正文内,因此需要设为true
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false); // Post请求不用设置缓存

// // 发送域信息
// OutputStreamWriter out = new
// OutputStreamWriter(conn.getOutputStream(), "utf-8");
// out.flush();
// out.close(); // 关闭流

// 获取返回数据
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
String line = null;
StringBuffer sb = new StringBuffer();
while ((line = in.readLine()) != null) {
sb.append(line);
}
in.close(); // 关闭流
return sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}

public static void main(String[] args) {
String urlAddress = "http://server.arcgisonline.com/arcgis/services?wsdl"; // 返回的数据,如xml或json等数据
System.out.println("————————GET————————");
System.out.println(getData(urlAddress, "utf-8")); // GET 方式
System.out.println("————————POST————————");
System.out.println(postData(urlAddress, "utf-8")); // POST 方式
}

}

HttpURL连接远程服务器Get和Post方式请求并返回数据_Post


HttpURL连接远程服务器Get和Post方式请求并返回数据_Get_02