package com.zehong.gassdevicereport.utils; import com.zehong.gassdevicereport.result.Result; import com.zehong.gassdevicereport.result.ResultEnum; import org.apache.http.*; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; public class HttpUtil { /** * get请求 * @return */ public static Result doGet(String url) throws IOException { HttpClient client = new DefaultHttpClient(); //发送get请求 HttpGet request = new HttpGet(url); HttpResponse response = client.execute(request); /**请求发送成功,并得到响应**/ if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { /**读取服务器返回过来的json字符串数据**/ String strResult = EntityUtils.toString(response.getEntity()); return new Result(ResultEnum.SUCCESS.getCode(),strResult); } return new Result(ResultEnum.FAIL.getCode(),EntityUtils.toString(response.getEntity())); } /** * post请求(用于key-value格式的参数) * @param url * @param params * @return */ public static Result doPost(String url, Map params) throws IOException, URISyntaxException { // 定义HttpClient HttpClient client = new DefaultHttpClient(); // 实例化HTTP方法 HttpPost request = new HttpPost(); request.setURI(new URI(url)); //设置参数 List<NameValuePair> nvps = new ArrayList<>(); for (Iterator iter = params.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String value = String.valueOf(params.get(name)); nvps.add(new BasicNameValuePair(name, value)); } request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8)); HttpResponse response = client.execute(request); int code = response.getStatusLine().getStatusCode(); BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity() .getContent(),"utf-8")); StringBuffer sb = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = in.readLine()) != null) { sb.append(line + NL); } in.close(); //请求成功 if(code == 200){ return new Result(ResultEnum.SUCCESS.getCode(),sb.toString()); } return new Result(ResultEnum.FAIL.getCode(),sb.toString()); } /** * post请求(用于请求json格式的参数) * @param url * @param params * @return */ public static Result doPost(String url, String params) throws Exception { CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httpPost HttpPost httpPost = new HttpPost(url); httpPost.setHeader("Accept", "application/json"); httpPost.setHeader("Content-Type", "application/json"); String charSet = "UTF-8"; StringEntity entity = new StringEntity(params, charSet); httpPost.setEntity(entity); CloseableHttpResponse response = null; try { response = httpclient.execute(httpPost); StatusLine status = response.getStatusLine(); int state = status.getStatusCode(); HttpEntity responseEntity = response.getEntity(); String jsonString = EntityUtils.toString(responseEntity); if (state == HttpStatus.SC_OK) { return new Result(ResultEnum.SUCCESS.getCode(),jsonString); } return new Result(ResultEnum.FAIL.getCode(),jsonString); }finally { if (response != null) { response.close(); } httpclient.close(); } } }