天天看點

java http 工具_Java http請求工具類

該工具類可以調用POST請求或者Get請求,參數以Map的方式傳入,支援獲擷取傳回值,傳回值接收類型為String

HttpRequestUtil.java

package com.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.util.List;

import java.util.Map;

import net.sf.json.JSONObject;

public class HttpRequestUtil {

public static String sendGet(String url, Map parameters) {

String result = "";

BufferedReader in = null;// 讀取響應輸入流

StringBuffer sb = new StringBuffer();// 存儲參數

String params = "";// 編碼之後的參數

try {

// 編碼請求參數

if (parameters.size() == 1) {

for (String name : parameters.keySet()) {

sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"));

}

params = sb.toString();

} else {

for (String name : parameters.keySet()) {

sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"))

.append("&");

}

String temp_params = sb.toString();

params = temp_params.substring(0, temp_params.length() - 1);

}

String full_url = url + "?" + params;

System.out.println(full_url);

// 建立URL對象

java.net.URL connURL = new java.net.URL(full_url);

// 打開URL連接配接

java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL.openConnection();

// 設定通用屬性

httpConn.setRequestProperty("Accept", "*

public static String sendPost(String url, Map parameters) {

String result = "";// 傳回的結果

BufferedReader in = null;// 讀取響應輸入流

PrintWriter out = null;

StringBuffer sb = new StringBuffer();// 處理請求參數

String params = "";// 編碼之後的參數

try {

// 編碼請求參數

if (parameters.size() == 1) {

for (String name : parameters.keySet()) {

sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"));

}

params = sb.toString();

} else {

for (String name : parameters.keySet()) {

sb.append(name).append("=").append(java.net.URLEncoder.encode(parameters.get(name), "UTF-8"))

.append("&");

}

String temp_params = sb.toString();

params = temp_params.substring(0, temp_params.length() - 1);

}

// 建立URL對象

java.net.URL connURL = new java.net.URL(url);

// 打開URL連接配接

java.net.HttpURLConnection httpConn = (java.net.HttpURLConnection) connURL.openConnection();

// 設定通用屬性

httpConn.setRequestProperty("Accept", "**");

httpConn.setRequestProperty("Connection", "Keep-Alive");

httpConn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");

// 設定POST方式

httpConn.setDoInput(true);

httpConn.setDoOutput(true);

// 擷取HttpURLConnection對象對應的輸出流

out = new PrintWriter(httpConn.getOutputStream());

// 發送請求參數

out.write(params);

// flush輸出流的緩沖

out.flush();

// 定義BufferedReader輸入流來讀取URL的響應,設定編碼方式

in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8"));

String line;

// 讀取傳回的内容

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (out != null) {

out.close();

}

if (in != null) {

in.close();

}

} catch (IOException ex) {

ex.printStackTrace();

}

}

return result;

}

}