1. 程式人生 > 其它 >HttpUtils-http請求工具類

HttpUtils-http請求工具類

HttpUtils-http請求工具類

package com.jeeplus.modules.utils;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;

/**
 * http 工具類
 */
public class HttpUtils {

    
public static String post(String requestUrl, String accessToken, String params) throws Exception { String contentType = "application/x-www-form-urlencoded"; return HttpUtils.post(requestUrl, accessToken, contentType, params); } public static String post(String requestUrl, String params)
throws Exception { String contentType = "application/json"; String encoding = "UTF-8"; if (requestUrl.contains("nlp")) { encoding = "GBK"; } return HttpUtils.postGeneralUrl(requestUrl, contentType, params, encoding); } public static String post(String requestUrl, String accessToken, String contentType, String params)
throws Exception { String encoding = "UTF-8"; if (requestUrl.contains("nlp")) { encoding = "GBK"; } return HttpUtils.post(requestUrl, accessToken, contentType, params, encoding); } public static String post(String requestUrl, String accessToken, String contentType, String params, String encoding) throws Exception { String url = requestUrl + "?access_token=" + accessToken; return HttpUtils.postGeneralUrl(url, contentType, params, encoding); } public static String postGeneralUrl(String generalUrl, String contentType, String params, String encoding) throws Exception { URL url = new URL(generalUrl); // 開啟和URL之間的連線 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); // 設定通用的請求屬性 connection.setRequestProperty("Content-Type", contentType); connection.setRequestProperty("Connection", "Keep-Alive"); connection.setUseCaches(false); connection.setDoOutput(true); connection.setDoInput(true); // 得到請求的輸出流物件 DataOutputStream out = new DataOutputStream(connection.getOutputStream()); out.write(params.getBytes(encoding)); out.flush(); out.close(); // 建立實際的連線 connection.connect(); // 獲取所有響應頭欄位 Map<String, List<String>> headers = connection.getHeaderFields(); // 遍歷所有的響應頭欄位 for (String key : headers.keySet()) { } // 定義 BufferedReader輸入流來讀取URL的響應 BufferedReader in = null; in = new BufferedReader( new InputStreamReader(connection.getInputStream(), encoding)); String result = ""; String getLine; while ((getLine = in.readLine()) != null) { result += getLine; } in.close(); return result; } }