1. 程式人生 > >java傳送http get、post請求

java傳送http get、post請求

 /**
     * 向指定URL傳送GET方法的請求
     * @param url 傳送請求的URL
     * @param param 請求引數,請求引數應該是 name1=value1&name2=value2 的形式。
     */
	 public  String sendGet(String url, String param) {
	        String result = "";
	        BufferedReader in = null;
	        try {
	            String urlNameString = url + "?" + param;
	            URL realUrl = new URL(urlNameString);
	            URLConnection connection = realUrl.openConnection();
	            connection.setRequestProperty("accept", "*/*");
	            connection.setRequestProperty("connection", "Keep-Alive");
	            connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
	            connection.connect();
	            // 獲取所有響應頭欄位
	            Map<String, List<String>> map = connection.getHeaderFields();
	            // 遍歷所有的響應頭欄位
	            for (String key : map.keySet()) {
	                System.out.println(key + "--->" + map.get(key));
	            }
	            // 定義 BufferedReader輸入流來讀取URL的響應
	            in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8"));
	            String line;
	            while ((line = in.readLine()) != null) {
	                result += line;
	            }
	        } catch (Exception e) {
	            System.out.println("傳送GET請求出現異常!" + e);
	            e.printStackTrace();
	        }finally {
	            try {
	                if (in != null) {
	                    in.close();
	                }
	            } catch (Exception e2) {
	                e2.printStackTrace();
	            }
	        }
	        return result;
	    }

	
	 
	 /**
	     * 向指定 URL 傳送POST方法的請求
	     * @param url 傳送請求的 URL
	     * @param param 請求引數,請求引數應該是 name1=value1&name2=value2 的形式。
	     */
	    public  String sendPost(String url, String param) {
	        OutputStreamWriter out = null;
	        BufferedReader in = null;
	        String result = "";
	        try {
	            URL realUrl = new URL(url);
	            HttpURLConnection conn = null;
	            conn = (HttpURLConnection) realUrl.openConnection();
	            conn.setDoOutput(true);
	            conn.setDoInput(true);
	            conn.setRequestMethod("POST");    // POST方法
	            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.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
	            conn.connect();
	            out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
	            // 傳送請求引數
	            out.write(param);
	            // flush輸出流的緩衝
	            out.flush();
	            // 定義BufferedReader輸入流來讀取URL的響應
	            in = new BufferedReader(
	                    new InputStreamReader(conn.getInputStream()));
	            String line;
	            while ((line = in.readLine()) != null) {
	                result += line;
	            }
	        } catch (Exception e) {
	            System.out.println("傳送 POST 請求出現異常!"+e);
	            e.printStackTrace();
	        }finally{
	            try{
	                if(out!=null){
	                    out.close();
	                }
	                if(in!=null){
	                    in.close();
	                }
	            }catch(IOException ex){
	                ex.printStackTrace();
	            }
	        }
	        return result;
	    }