- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import org.apache.log4j.Logger;
- import com.google.gson.Gson;
- public class HttpUtil {
- private static final Logger LOGGER = Logger.getLogger(HttpUtil.class);
- public static final String DEF_CHATSET = "UTF-8";
- public static final int DEF_CONN_TIMEOUT = 30000;
- public static final int DEF_READ_TIMEOUT = 30000;
- public static String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
- public static String sendRequest(final String url,
- final QuestionBean params, final String requestMethod) {
- final String result = net(url, params, requestMethod);
- LOGGER.info(result);
- return result;
- }
- /**
- *
- * @param strUrl
- * 請求地址
- * @param params
- * 請求參數
- * @param method
- * 請求方法
- * @return 網絡請求字符串
- *
- */
- public static String net(String strUrl, final QuestionBean params,
- final String method) {
- HttpURLConnection conn = null;
- BufferedReader reader = null;
- String rs = null;
- try {
- final StringBuffer sb = new StringBuffer();
- final URL url = new URL(strUrl);
- conn = (HttpURLConnection) url.openConnection();
- if (method == null || method.equals("GET")) {
- conn.setRequestMethod("GET");
- } else {
- conn.setRequestMethod("POST");
- conn.setDoOutput(true);
- }
- conn.setRequestProperty("User-agent", userAgent);
- // 設置文件類型:
- conn.setRequestProperty("Content-Type",
- "application/json;charset=UTF-8");
- // 設置接收類型否則返回415錯誤
- // conn.setRequestProperty("accept","*/*")此處爲暴力方法設置接受所有類型,以此來防範返回415;
- conn.setRequestProperty("accept", "application/json");
- conn.setUseCaches(false);
- conn.setConnectTimeout(DEF_CONN_TIMEOUT);
- conn.setReadTimeout(DEF_READ_TIMEOUT);
- conn.setInstanceFollowRedirects(false);
- conn.connect();
- if (params != null && "POST".equals(method)) {
- DataOutputStream out = new DataOutputStream(
- conn.getOutputStream());
- out.write(urlencodeToJson(params).getBytes());
- }
- final InputStream is = conn.getInputStream();
- reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
- String strRead = null;
- while ((strRead = reader.readLine()) != null) {
- sb.append(strRead);
- }
- rs = sb.toString();
- } catch (final IOException e) {
- LOGGER.error(e);
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (final IOException e) {
- LOGGER.error(e);
- }
- }
- if (conn != null) {
- conn.disconnect();
- }
- }
- return rs;
- }
- // 將對象轉爲json請求參數型
- public static String urlencodeToJson(final QuestionBean data) {
- return new Gson().toJson(data);
- }
- }
Http Post請求提交json格式數據工具類,解決請求參數中文亂碼問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.