自定义HttpClient工具类
简介
-
依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency>
api
- 发送get请求: doGet(String url);
- 发送post请求,传参数json: *doPostJson(String url, String jsonParam);*
源码
-
import java.util.HashMap; import java.util.Map; import org.apache.http.HttpEntity; 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.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import com.alibaba.fastjson.JSON; /* 依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> */ public class HttpClientUtils { public static void main(String[] args) { doGet("http://127.0.0.1/test1"); Map<String, Object> data = new HashMap<String, Object>(); data.put("code", "002"); data.put("name", "测试"); doPostJson("http://127.0.0.1/test2", Object2String(data)); } public static void doPostJson(String url, String jsonParam){ try { CloseableHttpClient client = null; CloseableHttpResponse response = null; try { HttpPost httpPost = new HttpPost(url); httpPost.setHeader(HTTP.CONTENT_TYPE, "application/json"); httpPost.setEntity(new StringEntity(jsonParam, ContentType.create("text/json", "UTF-8"))); client = HttpClients.createDefault(); response = client.execute(httpPost); int code = response.getStatusLine().getStatusCode(); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity); System.err.println(code); System.err.println(result); } finally { if (response != null) { response.close(); } if (client != null) { client.close(); } } } catch (Exception e) { e.printStackTrace(); } } public static void doGet(String url){ try { CloseableHttpClient client = null; CloseableHttpResponse response = null; try { HttpGet httpGet = new HttpGet(url); client = HttpClients.createDefault(); response = client.execute(httpGet); HttpEntity entity = response.getEntity(); String result = EntityUtils.toString(entity); int code = response.getStatusLine().getStatusCode(); System.err.println(result); System.err.println(code); } finally { if (response != null) { response.close(); } if (client != null) { client.close(); } } } catch (Exception e) { e.printStackTrace(); } } /** 将输入参数 转换为json字符串 */ public static String Object2String(Object obj){ // try { // return new ObjectMapper().writeValueAsString(obj); // } catch (JsonProcessingException e) { // e.printStackTrace(); // } return JSON.toJSONString(obj); } //TODO 待解决: 服务端接收后有中文款乱码问题 // public static void doPostForm(String url, String formParam){ // try { // CloseableHttpClient client = null; // CloseableHttpResponse response = null; // try { // // 创建一个提交数据的容器 // List<BasicNameValuePair> parames = new ArrayList<>(); // parames.add(new BasicNameValuePair("userId", "001")); // parames.add(new BasicNameValuePair("userName", "测试")); // // HttpPost httpPost = new HttpPost(url); // httpPost.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=UTF-8"); // httpPost.setEntity(new UrlEncodedFormEntity(parames, "UTF-8")); // client = HttpClients.createDefault(); // response = client.execute(httpPost); // HttpEntity entity = response.getEntity(); // String result = EntityUtils.toString(entity); // System.err.println(result); // } finally { // if (response != null) { // response.close(); // } // if (client != null) { // client.close(); // } // } // } catch (Exception e) { // e.printStackTrace(); // } // } }