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

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

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方式请求并返回数据

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


未经允许请勿转载:程序喵 » HttpURL连接远程服务器Get和Post方式请求并返回数据

点  赞 (0) 打  赏
分享到: