HTTPClient 工具类的使用

来源:互联网 发布:鸽子淘宝 编辑:程序博客网 时间:2024/05/18 00:11
public class HttpClientUtil {/** *  * <p>Title: doGet</p> * <p>Description:模拟代参数的get请求 </p> * @date2017年2月24日下午7:09:09 * @param url * @param param * @return */public static String doGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执行请求response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}/** *  * <p>Title: doGet</p> * <p>Description:模拟不带参数的get请求 </p> * @date2017年2月24日下午7:09:09 * @param url * @param param * @return */public static String doGet(String url) {return doGet(url, null);}/** *  * <p>Title: doPost</p> * <p>Description:模拟带参数的post请求 </p> * @date2017年2月24日下午7:10:19 * @param url * @param param * @return */public static String doPost(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (param != null) {List<NameValuePair> paramList = new ArrayList<>();for (String key : param.keySet()) {paramList.add(new BasicNameValuePair(key, param.get(key)));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);httpPost.setEntity(entity);}// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}/** *  * <p>Title: doPost</p> * <p>Description:模拟bu带参数的post请求 </p> * @date2017年2月24日下午7:10:19 * @param url * @param param * @return */public static String doPost(String url) {return doPost(url, null);}/** *  * <p>Title: doPostJson</p> * <p>Description: </p> * @date2017年2月24日下午7:11:01 * @param url * @param json * @return */public static String doPostJson(String url, String json) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);// 执行http请求response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return resultString;}}

0 0
原创粉丝点击