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上却不行 ...
最新文章
- 你知道“啥是佩奇”,却不一定了解佩奇排名算法
- react native引入第三方库
- 在子线程中弹土司的一段代码
- java 使用gdal_java-gdal实现shp转geojson
- Windows操作系统下查看日志
- 【django】配置前端静态文件【6】
- Tech Websites
- Node — 第四天(Promise与路由)
- poj2750 PottedFlower(线段树的环状操作)
- lnmp环境配置laravel项目白屏问题
- 缩放图片,解决bitmap 内存溢出out of memory的问题
- 学数值计算可以从事计算机算法吗,数值计算方法
- Java学习笔记之设计模式(7)单例模式
- Qt创建ui界面/界面关联类和LNK2001
- c#类似跑马灯抽签小程序
- 完美解决Mac无法写入NTFS硬盘——Mounty for NTFS
- 用python做动画的代码_Python应用 | 三行代码实现GIF动画
- 使用WIFI模块与MQTT服务器进行透传数据通讯(M0E1系列)
- 应用Microchip dsPIC芯片日志——烧录出现的问题
- 企业微信/skype sdk demo