自定义HttpClient工具类

自定义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();
    //        }
    //	}
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT枫斗者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值