1 package Test;
2
3 import java.io.IOException;
4 import java.io.InputStreamReader;
5 import java.net.URISyntaxException;
6 import java.util.ArrayList;
7 import java.util.List;
8 import java.util.Map;
9 import org.apache.http.NameValuePair;
10 import org.apache.http.HttpEntity;
11 import org.apache.http.client.ClientProtocolException;
12 import org.apache.http.client.methods.CloseableHttpResponse;
13 import org.apache.http.client.methods.HttpGet;
14 import org.apache.http.client.methods.HttpPost;
15 import org.apache.http.client.utils.URIBuilder;
16 import org.apache.http.entity.ContentType;
17 import org.apache.http.entity.StringEntity;
18 import org.apache.http.impl.client.CloseableHttpClient;
19 import org.apache.http.impl.client.HttpClients;
20 import org.apache.http.message.BasicNameValuePair;
21 import org.apache.http.util.CharArrayBuffer;
22 import org.apache.http.util.EntityUtils;
23
24 public class HttpClient {
25 /**
26 * 包含字符串参数的HttpPost请求
27 */
28 public static String doPostStr(String url, String string) throws IOException {
29 String resp = null;
30 StringEntity entityStr = new StringEntity(string,ContentType.create("text/plain", "UTF-8"));
31 CloseableHttpClient httpClient = HttpClients.createDefault();
32 HttpPost httpPost = new HttpPost(url);
33 httpPost.setEntity(entityStr);
34 CloseableHttpResponse response = null;
35 try {
36 response = httpClient.execute(httpPost);
37 HttpEntity entity = response.getEntity();
38 resp = EntityUtils.toString(entity, "UTF-8");
39 EntityUtils.consume(entity);
40 } catch (ClientProtocolException e) {
41 e.printStackTrace();
42 } catch (IOException e) {
43 e.printStackTrace();
44 } finally {
45 if (response != null) {
46 try {
47 response.close();
48 } catch (IOException e) {
49 e.printStackTrace();
50 }
51 }
52 }
53 return resp;
54 }
55 /**
56 * 不含参数的HttpPost请求
57 */
58 public static String doPost(String url) throws IOException {
59 CloseableHttpClient httpclient = HttpClients.createDefault();
60 HttpPost httppost = new HttpPost(url);
61 CloseableHttpResponse response = null;
62 try {
63 response = httpclient.execute(httppost);
64 } catch (IOException e) {
65 e.printStackTrace();
66 }
67 HttpEntity entity = response.getEntity();
68 String result = null;
69 result = EntityUtils.toString(entity);
70 return result;
71 }
72 /**
73 * 包含Map参数的HttpGet请求
74 */
75 public static String doGetMap(String url, Map<String,String> map) throws IOException {
76 String result = null;
77 CloseableHttpClient httpClient = HttpClients.createDefault();
78 List<NameValuePair> pairs = new ArrayList<NameValuePair>();
79 for(Map.Entry<String,String> entry : map.entrySet()){
80 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
81 }
82 CloseableHttpResponse response = null;
83 try {
84 URIBuilder builder = new URIBuilder(url);
85 builder.setParameters(pairs);
86 HttpGet get = new HttpGet(builder.build());
87 response = httpClient.execute(get);
88 if(response != null && response.getStatusLine().getStatusCode() == 200){
89 HttpEntity entity = response.getEntity();
90 long lenth = entity.getContentLength();
91 if(lenth != -1 && lenth < 2048){
92 result = EntityUtils.toString(entity,"UTF-8");
93 }else {
94 InputStreamReader reader1 = new InputStreamReader(entity.getContent(), "UTF-8");
95 CharArrayBuffer buffer = new CharArrayBuffer(2048);
96 char[] tmp = new char[1024];
97 int l;
98 while((l = reader1.read(tmp)) != -1) {
99 buffer.append(tmp, 0, l);
100 }
101 result = buffer.toString();
102 }
103 }
104 } catch (URISyntaxException e) {
105 e.printStackTrace();
106 } catch (ClientProtocolException e) {
107 e.printStackTrace();
108 } catch (IOException e) {
109 e.printStackTrace();
110 }finally {
111 try {
112 httpClient.close();
113 if(response != null)
114 {
115 response.close();
116 }
117 } catch (IOException e) {
118 e.printStackTrace();
119 }
120 }
121 return result;
122 }
123 /**
124 * 发送不带参数的HttpGet请求
125 */
126 public static String sendGet(String url) throws IOException {
127 CloseableHttpClient httpclient = HttpClients.createDefault();
128 HttpGet httpget = new HttpGet(url);
129 CloseableHttpResponse response = null;
130 try {
131 response = httpclient.execute(httpget);
132 } catch (IOException e) {
133 e.printStackTrace();
134 }
135 HttpEntity entity = response.getEntity();
136 String result = null;
137 result = EntityUtils.toString(entity);
138 return result;
139 }
140 }