後台發送http請求通用方法,包括get和post

來源:互聯網
上載者:User

標籤:request   返回   flush   rip   on()   sof   keep   read   mil   

package com.examsafety.service.sh;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;import net.sf.json.JSONObject;/** *  * @Description:   後台發送HTTP請求的公用方法 * @Version:       V1.0.0  * @Date:          2017年7月31日 下午1:51:25 */public class SendUrlData {    /**     * 發送遠端POST請求的公用方法     * @param sendUrl    (遠程請求的URL)     * @param param    (遠程請求參數)     * @return JSONObject    (遠程請求返回的JSON)     */    public static JSONObject sendPostUrl(String url, String param){        PrintWriter out = null;        BufferedReader in = null;        JSONObject jsonObject = null;        String result = "";        try {            URL realUrl = new URL(url);            // 開啟和URL之間的串連            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();            conn.setDoOutput(true);            conn.setDoInput(true);            conn.setUseCaches(false);            conn.setRequestMethod("POST");            conn.setConnectTimeout(10000);            conn.setReadTimeout(10000);            conn.connect();            // 擷取HttpURLConnection對象對應的輸出資料流(佈建要求編碼為UTF-8)            out = new PrintWriter(                    new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));            // 發送請求參數            out.print(param);            // flush輸出資料流的緩衝            out.flush();            // 擷取請求返回資料(設定返回資料編碼為UTF-8)            in = new BufferedReader(                    new InputStreamReader(conn.getInputStream(), "UTF-8"));            String line;            while ((line = in.readLine()) != null) {                result += line;            }            jsonObject = JSONObject.fromObject(result);            System.out.println(jsonObject);        } catch (IOException 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 jsonObject;    }      /**     * 發送遠端GET請求的公用方法     * @param sendUrl    (遠程請求的URL)     * @param param    (遠程請求參數)     * @return JSONObject    (遠程請求返回的JSON)     */    public static JSONObject sendGetUrl(String url, String param) {        JSONObject jsonObject = null;        String result = "";        BufferedReader in = null;        try {            String urlNameString = url + "?" + param;            URL realUrl = new URL(urlNameString);            // 開啟和URL之間的串連            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;            }            jsonObject = JSONObject.fromObject(result);            System.out.println(jsonObject);        } catch (Exception e) {            System.out.println("發送GET請求出現異常!" + e);            e.printStackTrace();        }        finally {            try {                if (in != null) {                    in.close();                }            } catch (Exception e2) {                e2.printStackTrace();            }        }        return jsonObject;            }}
參數說明url:需要請求的URL地址param:請求攜帶的參數(格式:“key1=value1&key2=value2&key3=value3”)

 

後台發送http請求通用方法,包括get和post

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.