1. 程式人生 > >使用HttpURLConnection實現post請求

使用HttpURLConnection實現post請求

需要使用 post 請求提交引數或者資料的的時候,很多人新手都不知道如何去實現,可能知用 HttpURLConnection 去實現,但不知道改如何去寫,我花了一些時間去整理了一下,其實還是很簡單,若有不明白的童鞋可以參考一下以下本人的實現方法。

public static String doRequest(String urlPath, Map<String, String> param) throws IOException {

        URL url = null;
        HttpURLConnection conn = null;
        BufferedReader in = null;
        String responseData = "";
        PrintWriter printWriter = null;
        try {
            url = new URL(urlPath);
            conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);

            conn.setDoOutput(true);// Set enable output
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("Charset", "utf-8");

            OutputStream os = conn.getOutputStream();
            printWriter = new PrintWriter(os);

            // traversing map(param) stitching parameters
            String content = "";
            for (String key : param.keySet()) {
                content += "&";
                content += key;
                content += "=";
                content += param.get(key);
            }

            System.out.println("the param ergodic result content:" + content);
            printWriter.write(content);
            printWriter.flush();

            int code = conn.getResponseCode();
            if (code == 200) {
                in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
                String retData = null;
                while ((retData = in.readLine()) != null) {
                    responseData += retData;
                }
            } else {
                responseData = code + "";
            }
            return responseData;
        } finally {
            if (printWriter != null) {
                printWriter.close();
            }
            if (in != null) {
                in.close();
            }
            if (conn != null) {
                conn.disconnect();
            }
        }
    }