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;

      }

}

HttpClientUtil工具类封装的更多相关文章

  1. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  2. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  3. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  4. Redis操作字符串工具类封装,Redis工具类封装

    Redis操作字符串工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>>& ...

  5. (转载) 百度地图工具类封装(包括定位,附近、城市、范围poi检索,反地理编码)

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 百度地图工具类封装(包括定位,附近.城市.范围poi检索, ...

  6. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_40、Redis工具类封装讲解和实战

    笔记 4.Redis工具类封装讲解和实战     简介:高效开发方式 Redis工具类封装讲解和实战         1.常用客户端 https://redisdesktop.com/download ...

  7. flink---实时项目--day02-----1. 解析参数工具类 2. Flink工具类封装 3. 日志采集架构图 4. 测流输出 5. 将kafka中数据写入HDFS 6 KafkaProducer的使用 7 练习

    1. 解析参数工具类(ParameterTool) 该类提供了从不同数据源读取和解析程序参数的简单实用方法,其解析args时,只能支持单只参数. 用来解析main方法传入参数的工具类 public c ...

  8. 关于TornadoFx和Android的全局配置工具类封装实现及思路解析

    原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...

  9. Android Sqlite 工具类封装

    鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLit ...

随机推荐

  1. 自动化运维工具之Zabbix

    一.部署zabbix 1.配置master节点 准备LAMP环境和zabbix的yum源 # yum install httpd php mariadb-server -y # vim /etc/my ...

  2. /etc/init.d# ./redis-server start

    root@ubuntu:/etc/init.d# ll total drwxr-xr-x root root May : ./ drwxr-xr-x root root May : ../ -rwxr ...

  3. ubuntu 安装java1.8

    1.进入官网下载页面http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.选择需要的版本,进入下载页面 下载 jdk ...

  4. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_4_File类的构造方法

    学习一个类先学习构造方法和静态方法 重写了Object类的toString方法 文件夹结尾 相对路径 第二个构造方法 两个路径组装到了一起 加上双斜线 换成d盘 第三个构造 第一个参数是一个File对 ...

  5. redis集群安装多端口多实例部署

    目标(本文达成的结果,配对关系可能会变): 先在131上进行操作 1.下载redis http://download.redis.io/releases/redis-5.0.2.tar.gz 2.解压 ...

  6. 5519: [Usaco2016 Open]Landscaping

    农夫约翰正在建造一个美丽的花园,在这个过程中需要移动大量的泥土.花园由N个花圃(1≤N≤100,000)组成,第i个花圃最开始有Ai个泥土. 农夫约翰想要重新整理花园,使每个花圃最后有Bi个泥土.Ai ...

  7. 20190925 On Java8 第二十二章 枚举

    第二十二章 枚举 基本 enum 特性 创建 enum 时,编译器会为你生成一个相关的类,这个类继承自 Java.lang.Enum. valueOf() 是在 Enum 中定义的 static 方法 ...

  8. win10系统Docker和VMware WorkStation共存,远程工具连接Docker

    摘要:win10安装docker进行学习的两种途径: Docker for Windows Installer.exe(地址https://download.docker.com/win/stable ...

  9. linux7 配置mysql5.7字符集编码

    linux 安装后 mysql5.7 字符集默认是拉丁,不能存储中文,修改步骤如下: 在 vim /etc/mysql/my.cnf   修改配置文件 在[mysqld] 下添加如下配置 charac ...

  10. SSM框架—Spring+SpringMVC+MyBatis

    1.环境搭建 1.1概念 Spring是一个Java应用的开源框架,Bean/Context/Core/IOC/AOP/MVC等是其重要组件,IOC控制反转,AOP面向切面编程,各种注入方式,实现方式 ...