HttpClient Java 常用写法总结
1. HttpClient 简介
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
2. Java 中使用方法
2.1 创建实例
官方推荐方法是创建 CloseableHttpClient 类
CloseableHttpClient httpclient = HttpClients.createDefault();
2.2 创建请求实例
// 创建 GET 请求实例
HttpGet httpGet = new HttpGet("http://127.0.0.1/test");
// 创建 POST 请求实例
HttpPost httpPost = new HttpPost("http://127.0.0.1/test2");
2.3 添加请求头
httpPost.addHeader("Content-Type", "application/form-data");
2.4 设置配置
httpPost.setConfig(RequestConfig.custom().setConnectTimeout(100).build());
2.5 添加实体
2.5.1 传递 Json 类型的字符串
httpPost.setEntity(new StringEntity("{\"name\":\"Martin\"}", "UTF-8"));
2.5.2 传递 form 表单
使用 BasicNameValuePair 封装 key - value,并添加到 List 集合中
List<BasicNameValuePair> basicNameValuePairs =new ArrayList<>();
basicNameValuePairs.add(new BasicNameValuePair("name", "Martin"));
basicNameValuePairs.add(new BasicNameValuePair("age", "10"));
basicNameValuePairs.add(new BasicNameValuePair("sex", "male"));
httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs, "UTF-8"));
2.5.3 传递 Multipart/form-data 类型的数据
// 创建 MultipartEntityBuilder
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create();
// 设置字符编码
ContentType contentType=ContentType.create("text/plain", Charset.forName("UTF-8"));
// 添加文本内容
entityBuilder.addPart("id", new StringBody("value",contentType));
// 添加文件
// 以二进制的形式添加数据,可以添加File、InputStream、byte[]类型的数据。
entityBuilder.addBinaryBody("fileName1", new File("test.txt"));
// 以Key/Value的形式添加ContentBody类型的数据
entityBuilder.addPart("fileName2", new FileBody(new File("test.txt")));
// 设置实体
httpPost.setEntity(entityBuilder.build());
2.6 发送请求
// 发送请求
HttpResponse httpResponse = httpclient.execute(httpPost);
2.7 释放连接
finally {httpPost.releaseConnection();
}
站在前人的肩膀上前行,感谢以下博客及文献的支持。
- Httpclient 表单,json,multipart/form-data 提交 —总结常用的方法
HttpClient Java 常用写法总结相关推荐
- Java常用类库以及简介,具体使用细节进行百度(爬虫爬取的数据)
来至于互联网 Office文档的Java处理包 POI [推荐] Apache POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.目前POI已经有了Ruby版本. 结构: ...
- javascript与java正则表达式写法的区别
Js验证写法:(转义符\) var str = "待验证文本"; var regular = new RegExp(/这里是正则表达式/); if (regular.test(st ...
- java和js的正则表达式一样吗_JavaScript与Java正则表达式写法的区别
JavaScript验证写法:(转义符\) var str = "待验证文本"; var regular = new RegExp(/这里是正则表达式/); if (regular ...
- Spring切点表达式常用写法
任意公共方法的执行: execution(public * *(..)) 任何一个名字以 set 开始的方法的执行: execution(* set*(..)) AccountService 接口定义 ...
- java测试开发_测试开发系类之Java常用知识点
测试需要的两门语言:Java,Python 测试开发:开发测试脚本->开发测试框架 Java需要掌握内容:基础语法.Java面向对象相关概念.Java常用类.基础测试框架 Java常用类:IO相 ...
- Spring切入点表达式常用写法
Spring切入点表达式常用写法 自从使用AspectJ风格切面配置,使得Spring的切面配置大大简化,但是AspectJ是另外一个开源项目,其规则表达式的语法也稍稍有些怪异. 下面给出一些常见示例 ...
- httpclient java 过时_当年用httpclient时踩过的那些坑
前言 httpclient是java开发中最常用的工具之一,通常大家会使用httpcilent去调用远程,使用其中比较基础的api,长期开发爬虫,会接触httpclient不常用的api,同时会遇到各 ...
- java apache commons_Apache commons(Java常用工具包)简介
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html Be ...
- 【Java入门基础第10天】Java常用的转义字符
Java常用的转义字符 1.\t:一个制表位,实现对齐功能 2.\n:换行符 3.\\:转义字符 一个 4.\":一个" 5.\':一个' 6.\r:一个回车 System.out ...
- Java 常用数据类型的输入输出
C语言学习完转到Java后,第一个感觉就是Java的写法很复杂,同时,在常用的数据类型的输入输出上也没有C语言那么方便.在C语言上面,用 scanf 函数可以很方便的输入大多数格式,在Java上却不行 ...
最新文章
- 带参数的方法;导入包
- css行高line-height的一些深入理解及应用
- 滨州行谋定乡音叙乡情-农业大健康·万祥军:考察特色产业
- 信息系统项目管理师-信息化与信息系统考点笔记(上)
- 使用Curator和ZooKeeper发现Hazelcast成员
- 投篮c语言程序设计,教师招聘笔试体育之篮球必做20题(一)
- mysql介质故障_pciessd异常readonly致mysql反复crash
- 前端开发的工具,库和资源总结
- mysql 字段内容大小写_mysql查询字段内容无法区分大小写问题
- U大师U盘启动盘制作工具(V1.1.0版)——升级U盘
- navicat报错SSH:Unable to load key
- 涂料价格上涨原因剖析
- Android 深入理解AIL语言与init.rc文件
- 【雅思大作文考官范文】——第十六篇:climate change essay
- 男朋友该对女生说的23句话(转)
- leetcode零散题汇总
- tp5原生SQL:读操作(query方法)
- 电路与电子线路实验一万用表的设计与仿真——北京理工大学
- 持续信创| 骞云科技与东方通完成产品兼容性互认证
- Xmind2021分享
热门文章
- [Bilingual]Klein四元群的四个例子Four examples of Klein four-group
- Qt与flash交互实现(播放Flash动画)
- 数据预处理_缺失值处理
- C# Activator.CreateInstance()方法使用
- matlab中e如何输入,Matlab中表达e的操作方法介绍
- 在matlab编辑大于号,教你怎么用MathType编辑大于或小于符号
- latex补集怎么打
- 太阳系八大行星直径、质量、与太阳距离参数
- 洛谷 P3987 我永远喜欢珂朵莉~(Splay+BIT+无限卡常)
- Pivotal 任命Lionel Lim为Pivotal公司副总裁兼亚太区常务董事