相关包
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
<version>4.5.2</version>
</dependency>
实例代码
try {
System.out.println(Request.Get("https://baidu.com").execute().returnContent().asString(Consts.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
try {
// System.out.println(Request.Post("https://www.hao123.com").bodyForm(Form.form().add("a","a").build()).execute().returnContent().asString(Consts.UTF_8));
System.out.println(Request.Post("https://www.hao123.com").bodyString("{\"data\":\"data\"}",ContentType.APPLICATION_JSON).execute().returnContent().asString(Consts.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
并发
所有请求会使用一个公共的连接池,总共200连接,每个destination最多100个连接。而且内容会立刻全部读出然后关闭inputsream,不需要再用代码去关闭。
可在org.apache.http.client.fluent.Executor中查看实现
相关资料
官方介绍译文:http://ifeve.com/httpclient-fluent-api/ (包含服务器认证demo)