1 package com.ss.utils;
2
3 import java.io.IOException;
4 import java.net.URI;
5 import java.util.ArrayList;
6 import java.util.List;
7 import java.util.Map;
8
9 import org.apache.http.NameValuePair;
10 import org.apache.http.client.entity.UrlEncodedFormEntity;
11 import org.apache.http.client.methods.CloseableHttpResponse;
12 import org.apache.http.client.methods.HttpGet;
13 import org.apache.http.client.methods.HttpPost;
14 import org.apache.http.client.utils.URIBuilder;
15 import org.apache.http.entity.ContentType;
16 import org.apache.http.entity.StringEntity;
17 import org.apache.http.impl.client.CloseableHttpClient;
18 import org.apache.http.impl.client.HttpClients;
19 import org.apache.http.message.BasicNameValuePair;
20 import org.apache.http.util.EntityUtils;
21
22 public class HttpClientUtil {
23
24 public static String doGet(String url, Map<String, String> param) {
25
26 // 创建Httpclient对象
27 CloseableHttpClient httpclient = HttpClients.createDefault();
28
29 String resultString = "";
30 CloseableHttpResponse response = null;
31 try {
32 // 创建uri
33 URIBuilder builder = new URIBuilder(url);
34 if (param != null) {
35 for (String key : param.keySet()) {
36 builder.addParameter(key, param.get(key));
37 }
38 }
39 URI uri = builder.build();
40
41 // 创建http GET请求
42 HttpGet httpGet = new HttpGet(uri);
43
44 // 执行请求
45 response = httpclient.execute(httpGet);
46 // 判断返回状态是否为200
47 if (response.getStatusLine().getStatusCode() == 200) {
48 resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
49 }
50 } catch (Exception e) {
51 e.printStackTrace();
52 } finally {
53 try {
54 if (response != null) {
55 response.close();
56 }
57 httpclient.close();
58 } catch (IOException e) {
59 e.printStackTrace();
60 }
61 }
62 return resultString;
63 }
64
65 public static String doGet(String url) {
66 return doGet(url, null);
67 }
68
69 public static String doPost(String url, Map<String, String> param) {
70 // 创建Httpclient对象
71 CloseableHttpClient httpClient = HttpClients.createDefault();
72 CloseableHttpResponse response = null;
73 String resultString = "";
74 try {
75 // 创建Http Post请求
76 HttpPost httpPost = new HttpPost(url);
77 // 创建参数列表
78 if (param != null) {
79 List<NameValuePair> paramList = new ArrayList<>();
80 for (String key : param.keySet()) {
81 paramList.add(new BasicNameValuePair(key, param.get(key)));
82 }
83 // 模拟表单
84 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
85 httpPost.setEntity(entity);
86 }
87 // 执行http请求
88 response = httpClient.execute(httpPost);
89 resultString = EntityUtils.toString(response.getEntity(), "utf-8");
90 } catch (Exception e) {
91 e.printStackTrace();
92 } finally {
93 try {
94 response.close();
95 } catch (IOException e) {
96 // TODO Auto-generated catch block
97 e.printStackTrace();
98 }
99 }
100
101 return resultString;
102 }
103
104 public static String doPost(String url) {
105 return doPost(url, null);
106 }
107
108 public static String doPostJson(String url, String json) {
109 // 创建Httpclient对象
110 CloseableHttpClient httpClient = HttpClients.createDefault();
111 CloseableHttpResponse response = null;
112 String resultString = "";
113 try {
114 // 创建Http Post请求
115 HttpPost httpPost = new HttpPost(url);
116 // 创建请求内容
117 StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
118 httpPost.setEntity(entity);
119 // 执行http请求
120 response = httpClient.execute(httpPost);
121 resultString = EntityUtils.toString(response.getEntity(), "utf-8");
122 } catch (Exception e) {
123 e.printStackTrace();
124 } finally {
125 try {
126 response.close();
127 } catch (IOException e) {
128 // TODO Auto-generated catch block
129 e.printStackTrace();
130 }
131 }
132
133 return resultString;
134 }
135 }