• HttpClientUtil工具类封装


    package com.jd.ng.shiro.utils;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpStatus;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.config.RequestConfig;
    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.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;

    /**

    • @Author: husToy.Wang

    • @Date: 2019/8/5 9:38

    • @Version 1.0
      */
      public class HttpClientUtil {

      private static final Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);

      /**

      • 封装 doGet方法,执行

      • @param url

      • @return
        */
        public static String doGet(String url) {

        CloseableHttpClient httpClient = HttpClients.createDefault();

        HttpGet httpGet = new HttpGet(url);

        /**

        • 设置请求头
          */
          //httpGet.setHeader(new BasicHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"));

        CloseableHttpResponse response = null;

        try {
        response = httpClient.execute(httpGet);

         if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
             HttpEntity entity = response.getEntity();
        
             String result = EntityUtils.toString(entity, "UTF-8");
        
             EntityUtils.consume(entity);
        
             httpClient.close();
        
             return result;
         }
         httpClient.close();
        

        } catch (IOException e) {
        logger.error("httpClient.doGet.error:{}", e.getMessage());
        return null;
        }

        return null;
        }

      /**

      • 封装 post请求

      • @return
        */
        public static String doPost(String url) throws IOException {
        String result = null;

        CloseableHttpClient httpClient = HttpClients.createDefault();

        CloseableHttpResponse response = null;

        try {

         HttpPost httpPost = new HttpPost(url);
        
         // 定义请求的配置
         RequestConfig config = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(2000).build();
         httpPost.setConfig(config);
        
        
         List<NameValuePair> parameters = new ArrayList<NameValuePair>(0);
         parameters.add(new BasicNameValuePair("scope", "project"));
         parameters.add(new BasicNameValuePair("q", "java"));
        
         // 提交参数发送请求
         UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(parameters);
        
         // 请求中设置请求体
         httpPost.setEntity(urlEncodedFormEntity);
        
        
         // 如果需要,设置请求头,多个请求头
         //Header[] headers = {new BasicHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8")};
         //httpPost.setHeaders(headers);
        
        
         response = httpClient.execute(httpPost);
        
         HttpEntity entity = response.getEntity();
        
         if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        
             result = EntityUtils.toString(entity, "UTF-8");
        
             EntityUtils.consume(entity);
             httpClient.close();
             return result;
         }
        

        } catch (Exception e) {
        logger.error("httpClient.doPost.error:{}", e.getMessage());
        return null;
        }

        return null;
        }

    }

  • 相关阅读:
    JDK 和 OpenJDK 的区别
    IntelliJ IDEA 使用 Git 并将 GitHub 作为远程代码仓库
    SQL 常用语法记录整理
    SpringBoot SpringApplication底层源码分析与自动装配
    一步步从Spring Framework装配掌握SpringBoot自动装配
    SpringBoot系列教程起步
    Redis高级进阶
    Redis构建文章聚合信息分类网站
    Redis快速起步及Redis常用命令大全
    Redis构建处理海量数据的大型购物网站
  • 原文地址:https://www.cnblogs.com/leigepython/p/11301448.html
Copyright © 2020-2023  润新知