1. 程式人生 > >微信公眾號get與post請求實現模版

微信公眾號get與post請求實現模版

在做微信公眾平臺後臺開發的時候,常常需要用程式碼實現模擬瀏覽器的GET和POST請求,
下面是用Java語言實現的GET和POST請求的一般寫法:

1.GET請求模擬(不帶引數)

    //由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
    //requestUrl表示請求連結
    public static String sendGet(String requestUrl) {
        StringBuffer buffer = null;

        try {
            // 建立連線
            URL url = new
URL(requestUrl); HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setDoInput(true); httpUrlConn.setRequestMethod("GET"); // 獲取輸入流 InputStream inputStream = httpUrlConn.getInputStream(); InputStreamReader inputStreamReader = new
InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); // 讀取返回結果 buffer = new StringBuffer(); String str = null; while ((str = bufferedReader.readLine()) != null) { buffer.append(str
); } // 釋放資源 bufferedReader.close(); inputStreamReader.close(); inputStream.close(); httpUrlConn.disconnect(); } catch (Exception e) { e.printStackTrace(); } return buffer.toString(); }

2.GET請求模擬(帶引數)

  //由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
    //url表示請求連結,param表示json格式的請求引數
    public static String sendGet(String url, Object param) {
        String result = "";      
        BufferedReader in = null;
        PrintWriter out = null;
        try {
            URL realUrl = new URL(url);
            // 開啟和URL之間的連線
            URLConnection connection = realUrl.openConnection();
            connection.setDoOutput(true);
            // 建立實際的連線
            connection.connect();
            out = new PrintWriter(connection.getOutputStream());
            // 傳送請求引數
            out.print(param);
            // 定義 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塊來關閉輸入流
        finally {
            try {
                if (in != null) {
                    in.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        System.out.println(result);
        return result;
    }

3.POST請求模擬

  //由於這類方法經常被用到,因此建議寫在一個工具類裡面,設定為靜態方法,方便呼叫。
    //url表示請求連結,param表示json格式的請求引數
    public static String sendPost(String url, Object param) {
        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            // 開啟和URL之間的連線
            URLConnection conn = realUrl.openConnection();
            // 設定通用的請求屬性 注意Authorization生成
            // conn.setRequestProperty("Content-Type",
            // "application/x-www-form-urlencoded");
            // 傳送POST請求必須設定如下兩行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 獲取URLConnection物件對應的輸出流
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
            // 傳送請求引數
            out.print(param);
            // flush輸出流的緩衝
            out.flush();
            // 定義BufferedReader輸入流來讀取URL的響應
            in = new BufferedReader(
                    new InputStreamReader(conn.getInputStream(),"utf-8"));
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
            System.out.println(result);
        } catch (Exception e) {
            System.out.println("傳送 POST 請求出現異常!" + e);
            e.printStackTrace();
        }
        // 使用finally塊來關閉輸出流、輸入流
        finally {
            try {
                if (out != null) {
                    out.close();
                }
                if (in != null) {
                    in.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return result;
    }
  • 以上方法裡面所用到的包,這裡沒有引入,只是作為一個例項程式,說明一下模擬瀏覽器的GET和POST請求的常見寫法。 希望對朋友們有用!