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