maven依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
GET请求:
1、参数直接拼接到URL后面,即http://test.com?a=1&b=2的形式
1 /**
2 * get请求,参数拼接在地址上
3 * @param url 请求地址加参数
4 * @return 响应
5 */
6 public String get(String url)
7 {
8 String result = null;
9 CloseableHttpClient httpClient = HttpClients.createDefault();
10 HttpGet get = new HttpGet(url);
11 CloseableHttpResponse response = null;
12 try {
13 response = httpClient.execute(get);
14 if(response != null && response.getStatusLine().getStatusCode() == 200)
15 {
16 HttpEntity entity = response.getEntity();
17 result = entityToString(entity);
18 }
19 return result;
20 } catch (IOException e) {
21 e.printStackTrace();
22 }finally {
23 try {
24 httpClient.close();
25 if(response != null)
26 {
27 response.close();
28 }
29 } catch (IOException e) {
30 e.printStackTrace();
31 }
32 }
33 return null;
34 }
2、参数放置到一个map中
1 /**
2 * get请求,参数放在map里
3 * @param url 请求地址
4 * @param map 参数map
5 * @return 响应
6 */
7 public String getMap(String url,Map<String,String> map)
8 {
9 String result = null;
10 CloseableHttpClient httpClient = HttpClients.createDefault();
11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();
12 for(Map.Entry<String,String> entry : map.entrySet())
13 {
14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
15 }
16 CloseableHttpResponse response = null;
17 try {
18 URIBuilder builder = new URIBuilder(url);
19 builder.setParameters(pairs);
20 HttpGet get = new HttpGet(builder.build());
21 response = httpClient.execute(get);
22 if(response != null && response.getStatusLine().getStatusCode() == 200)
23 {
24 HttpEntity entity = response.getEntity();
25 result = entityToString(entity);
26 }
27 return result;
28 } catch (URISyntaxException e) {
29 e.printStackTrace();
30 } catch (ClientProtocolException e) {
31 e.printStackTrace();
32 } catch (IOException e) {
33 e.printStackTrace();
34 }finally {
35 try {
36 httpClient.close();
37 if(response != null)
38 {
39 response.close();
40 }
41 } catch (IOException e) {
42 e.printStackTrace();
43 }
44 }
45
46 return null;
47 }
POST请求:
1、参数放到map中
1 /**
2 * 发送post请求,参数用map接收
3 * @param url 地址
4 * @param map 参数
5 * @return 返回值
6 */
7 public String postMap(String url,Map<String,String> map) {
8 String result = null;
9 CloseableHttpClient httpClient = HttpClients.createDefault();
10 HttpPost post = new HttpPost(url);
11 List<NameValuePair> pairs = new ArrayList<NameValuePair>();
12 for(Map.Entry<String,String> entry : map.entrySet())
13 {
14 pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
15 }
16 CloseableHttpResponse response = null;
17 try {
18 post.setEntity(new UrlEncodedFormEntity(pairs,"UTF-8"));
19 response = httpClient.execute(post);
20 if(response != null && response.getStatusLine().getStatusCode() == 200)
21 {
22 HttpEntity entity = response.getEntity();
23 result = entityToString(entity);
24 }
25 return result;
26 } catch (UnsupportedEncodingException e) {
27 e.printStackTrace();
28 } catch (ClientProtocolException e) {
29 e.printStackTrace();
30 } catch (IOException e) {
31 e.printStackTrace();
32 }finally {
33 try {
34 httpClient.close();
35 if(response != null)
36 {
37 response.close();
38 }
39 } catch (IOException e) {
40 e.printStackTrace();
41 }
42
43 }
44 return null;
45 }
2、参数是json字符串
1 /**
2 * post请求,参数为json字符串
3 * @param url 请求地址
4 * @param jsonString json字符串
5 * @return 响应
6 */
7 public String postJson(String url,String jsonString)
8 {
9 String result = null;
10 CloseableHttpClient httpClient = HttpClients.createDefault();
11 HttpPost post = new HttpPost(url);
12 CloseableHttpResponse response = null;
13 try {
14 post.setEntity(new ByteArrayEntity(jsonString.getBytes("UTF-8")));
15 response = httpClient.execute(post);
16 if(response != null && response.getStatusLine().getStatusCode() == 200)
17 {
18 HttpEntity entity = response.getEntity();
19 result = entityToString(entity);
20 }
21 return result;
22 } catch (UnsupportedEncodingException e) {
23 e.printStackTrace();
24 } catch (ClientProtocolException e) {
25 e.printStackTrace();
26 } catch (IOException e) {
27 e.printStackTrace();
28 }finally {
29 try {
30 httpClient.close();
31 if(response != null)
32 {
33 response.close();
34 }
35 } catch (IOException e) {
36 e.printStackTrace();
37 }
38 }
39 return null;
40 }
entityToString方法:
1 private String entityToString(HttpEntity entity) throws IOException {
2 String result = null;
3 if(entity != null)
4 {
5 long lenth = entity.getContentLength();
6 if(lenth != -1 && lenth < 2048)
7 {
8 result = EntityUtils.toString(entity,"UTF-8");
9 }else {
10 InputStreamReader reader1 = new InputStreamReader(entity.getContent(), "UTF-8");
11 CharArrayBuffer buffer = new CharArrayBuffer(2048);
12 char[] tmp = new char[1024];
13 int l;
14 while((l = reader1.read(tmp)) != -1) {
15 buffer.append(tmp, 0, l);
16 }
17 result = buffer.toString();
18 }
19 }
20 return result;
21 }