简介

依赖
<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();
//        }
//  }
}

HttpClient工具类 HttpClientUtils.java相关推荐

  1. Java开发小技巧(五):HttpClient工具类

    前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...

  2. HttpClient工具类及应用

    Content-Type类型: 常见的媒体格式类型如下: text/html : HTML格式 text/plain :纯文本格式 text/xml : XML格式 image/gif :gif图片格 ...

  3. HttpClient工具类

    HttpClient工具类 package cn.sh.steven.httpclient;import com.alibaba.fastjson.JSON; import com.alibaba.f ...

  4. apache httpclient 工具类_HttpClient

    HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...

  5. apache httpclient 工具类_HttpClient 和Mycat 主从节点和读写分离

    第175次(HttpClient) 学习主题:HttpClient 学习目标: 1 掌握HttpClient自定义工具以及HttpClient具体的使用 对应视频: http://www.itbaiz ...

  6. apache httpclient 工具类_使用HttpClient进行服务的远程调用

    目标:使用apache公司的产品http httpcomponents 完成服务调用. HTTPClient调用服务 4:导入httpclient的依赖配置 org.apache.httpcompon ...

  7. 14、阿里云短信Demo演示、Http的Get请求和Post请求演示、httpClient工具类演示、发送短信模块搭建、搭建用户中心模块、完成user注册基本功能、验证码存入redis、短信验证码注册

    阿里云短信Demo演示 一.前端部分 无前端. 二.后端部分 1.创建发送短信测试模块SmsSendDemo,不用使用骨架. 2.在pom文件中引入依赖坐标 <dependency>< ...

  8. 工具类-httpClient工具类

    httpClient工具类 1.httpClient工具类(http/https.重发.超时.连接数的设置) package com.xxxxxxx.xxxx.xxxx.payutil;import ...

  9. HttpPost.setHeader(Cookie, PHPSESSID= + PHPSESSID)方式的HttpClient工具类

    摘要: session在浏览器和web服务器直接是通过一个叫做name为sessionid的cookie来传递的,所以只要在每次数据请求时保持sessionid是同一个不变就可以用到web的sessi ...

最新文章

  1. windows2003前言
  2. STM32单片机SIM800C创客GSM短信GPRS可编程模块SDK二次开发DIY
  3. MySql层级树查询
  4. 关闭swap的危害——一旦内存耗尽,由于没有SWAP的缓冲,系统会立即开始OOM
  5. weekly 2019-02-15
  6. NIFI工作流备份和恢复
  7. 清华大学python课程_清华大学计算机系课程攻略
  8. VS2019 WPF制作OTA上位机(一)新建工程
  9. kettle创建mysql资源库
  10. 单用户修改root密码--redhat7.2 or centos7
  11. UICamera(NGUI Event system)原理
  12. java定时数据同步_java实现定时同步数据同步
  13. git 配置 diff 、 merge 工具: kdiff3
  14. 两个程序的爱情故事(刘欣)
  15. 1208:2的幂次方表示
  16. 网页能够兼容所有手机浏览器—杂记(2)
  17. Android社招面经分享!2021华为Android高级面试题及答案,附相关架构及资料
  18. springboot + vue 时区问题
  19. 图片怎么转化为pdf格式?
  20. 互联网巨头的自白:那些年,救我于水火的投资人

热门文章

  1. 2018.09.17 atcoder Digit Sum(数论)
  2. ftp协议及vsftpd的基本应用
  3. 机器学习初探(手写数字识别)HOG图片
  4. Html5+NodeJS——拖拽多个文件上传到服务器
  5. MYSQL5.7---ONLY_FULL_GROUP_BY 异常处理
  6. 解决SQLite异常:library routine called out of sequence
  7. IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
  8. 推荐系统系列教程之十六:深度和宽度兼具的融合模型
  9. 大神干货:腾讯广告算法大赛亚军女极客生存图鉴
  10. 如何看待EMNLP2021 best paper? 邱锡鹏教授:以为走错会场了