From a72ad6b6a6e882c5c91cda36fa3a994ff556e6fb Mon Sep 17 00:00:00 2001 From: mm Date: Wed, 24 Apr 2019 22:18:29 +0800 Subject: [PATCH] nio utf8 --- .../common/utils/NioHttpClientUtils.java | 143 ++---------------- 1 file changed, 12 insertions(+), 131 deletions(-) diff --git a/src/main/java/com/educoder/bridge/common/utils/NioHttpClientUtils.java b/src/main/java/com/educoder/bridge/common/utils/NioHttpClientUtils.java index a8fb69e..493d9c2 100644 --- a/src/main/java/com/educoder/bridge/common/utils/NioHttpClientUtils.java +++ b/src/main/java/com/educoder/bridge/common/utils/NioHttpClientUtils.java @@ -1,17 +1,11 @@ package com.educoder.bridge.common.utils; -import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; -import java.io.PrintWriter; -import java.net.URL; -import java.net.URLConnection; -import java.util.List; import java.util.Map; import java.util.concurrent.Future; -import org.apache.commons.lang.StringUtils; import org.apache.http.ConnectionClosedException; +import org.apache.http.Consts; import org.apache.http.HttpResponse; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.HttpPost; @@ -29,60 +23,6 @@ import org.slf4j.LoggerFactory; public class NioHttpClientUtils { private static final Logger log = LoggerFactory.getLogger(NioHttpClientUtils.class); - /** - * 向指定URL发送GET方法的请求 - * - * @param url - * 发送请求的URL - * @param param - * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return URL 所代表远程资源的响应结果 - */ - public static String sendGet(String url, String param) { - String result = ""; - BufferedReader in = null; - try { - String urlNameString = url; - if (StringUtils.isNotEmpty(param)) { - urlNameString += "?" + param; - } - URL realUrl = new URL(urlNameString); - // 打开和URL之间的连接 - URLConnection connection = realUrl.openConnection(); - // 设置通用的请求属性 - connection.setRequestProperty("accept", "*/*"); - connection.setRequestProperty("connection", "Keep-Alive"); - connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - // 建立实际的连接 - connection.connect(); - // 获取所有响应头字段 - Map> map = connection.getHeaderFields(); - // 遍历所有的响应头字段 - for (String key : map.keySet()) { - System.out.println(key + "--->" + map.get(key)); - } - // 定义 BufferedReader输入流来读取URL的响应 - in = new BufferedReader(new InputStreamReader(connection.getInputStream())); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } catch (Exception e) { - log.error("发送GET请求出现异常!", e); - } - // 使用finally块来关闭输入流 - finally { - try { - if (in != null) { - in.close(); - } - } catch (Exception e2) { - e2.printStackTrace(); - } - } - return result; - } - /** * 向指定 URL 发送POST方法的请求 * @@ -97,19 +37,17 @@ public class NioHttpClientUtils { String result = ""; try { HttpPost request = new HttpPost(url); - // conn.setRequestProperty("Accept", "*/*"); - // conn.setRequestProperty("Connection", "Keep-Alive"); - StringBuffer stringBuffer = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (Object key : param.keySet()) { - stringBuffer.append(key + "=" + param.get(key)); - stringBuffer.append("&"); + sb.append(key + "=" + param.get(key)); + sb.append("&"); } - String data = stringBuffer.toString(); + String data = sb.toString(); data = data.substring(0, data.length() - 1); log.debug("POST: " + url + " DATA: " + data); - ContentType contentType = ContentType.create("application/x-www-form-urlencoded"); + ContentType contentType = ContentType.create("application/x-www-form-urlencoded", Consts.UTF_8); StringEntity entity = new StringEntity(data, contentType); request.setEntity(entity); @@ -177,20 +115,17 @@ public class NioHttpClientUtils { String result = ""; try { HttpPost request = new HttpPost(url); - // conn.setRequestProperty("Accept", "*/*"); - // conn.setRequestProperty("Connection", "Keep-Alive"); - // conn.setReadTimeout(readTimeOut); - StringBuffer stringBuffer = new StringBuffer(); + StringBuilder sb = new StringBuilder(); for (Object key : param.keySet()) { - stringBuffer.append(key + "=" + param.get(key)); - stringBuffer.append("&"); + sb.append(key + "=" + param.get(key)); + sb.append("&"); } - String data = stringBuffer.toString(); + String data = sb.toString(); data = data.substring(0, data.length() - 1); log.debug("POST: " + url + " DATA: " + data); - ContentType contentType = ContentType.create("application/x-www-form-urlencoded"); + ContentType contentType = ContentType.create("application/x-www-form-urlencoded", Consts.UTF_8); StringEntity entity = new StringEntity(data, contentType); request.setEntity(entity); @@ -236,60 +171,6 @@ public class NioHttpClientUtils { } - /** - * 向指定 URL 发送POST请求 - * - * @param url - * 发送请求的 URL - * @param param - * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 - * @return 所代表远程资源的响应结果 - */ - public static String sendPost(String url, String param) { - PrintWriter out = null; - BufferedReader in = null; - String result = ""; - try { - URL realUrl = new URL(url); - // 打开和URL之间的连接 - URLConnection conn = realUrl.openConnection(); - // 设置通用的请求属性 - conn.setRequestProperty("accept", "*/*"); - conn.setRequestProperty("connection", "Keep-Alive"); - conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); - // 发送POST请求必须设置如下两行 - conn.setDoOutput(true); - conn.setDoInput(true); - // 获取URLConnection对象对应的输出流 - out = new PrintWriter(conn.getOutputStream()); - // 发送请求参数 - out.print(param); - // flush输出流的缓冲 - out.flush(); - // 定义BufferedReader输入流来读取URL的响应 - in = new BufferedReader(new InputStreamReader(conn.getInputStream())); - String line; - while ((line = in.readLine()) != null) { - result += line; - } - } 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; - } + }