org.apache.httpcomponents.httpclient
apache org doc :http://hc.apache.org/httpcomponents-client-ga/tutorial/html/fundamentals.html#d5e49
依赖: <!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpmime -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency> <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.nio.charset.StandardCharsets;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext; import org.apache.http.client.config.RequestConfig;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.ssl.TrustStrategy;
import org.apache.log4j.Logger;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.util.EntityUtils;
import org.apache.http.HttpStatus;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost; import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; public class HttpDemo {
private static Logger LOGGER = Logger.getLogger(HttpDemo.class);
private static CloseableHttpResponse response;
private static HttpEntity entity; /**
* this is ssl ignore https CloseableClient
*/
static CloseableHttpClient sslIgnoreClient() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
CloseableHttpClient client = null;
SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() { public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
return true;
}
}).build();
client = HttpClients.custom().setSSLContext(sslContext).setSSLHostnameVerifier(new NoopHostnameVerifier()).build(); return client;
} /**
* http get method
*/
static String doGet(String url, Map<Object, Object> header) throws KeyStoreException, IOException,
KeyManagementException, NoSuchAlgorithmException {
String result = null; // initialize result
CloseableHttpClient request = sslIgnoreClient();
HttpGet msg = new HttpGet(url);
if (header != null) {
header.forEach((key, value) -> {
msg.addHeader(key.toString(), value.toString());
}); }
response = request.execute(msg);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
result = EntityUtils.toString(entity, "UTF-8");
}
return result;
} /**
* String body is json type
*/
static String doPost(String url, String body, Map<Object, Object> header) throws KeyStoreException, IOException,
KeyManagementException, NoSuchAlgorithmException {
String result = null;
CloseableHttpClient request = sslIgnoreClient();
HttpPost msg = new HttpPost(url);
if (header != null) {
header.forEach((key, value) -> {
msg.addHeader(key.toString(), value.toString());
});
}
msg.setEntity(new StringEntity(body));
response = request.execute(msg);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
result = EntityUtils.toString(entity, "UTF-8");
}
return result;
} /**
* do post form-data
*/
static String doPostParam(String url, Map<Object, Object> header, Map<Object, Object> params) throws KeyStoreException, IOException,
KeyManagementException, NoSuchAlgorithmException {
String result = null;
CloseableHttpClient request = sslIgnoreClient();
HttpPost msg = new HttpPost();
if (header != null) {
header.forEach((key, value) -> {
msg.addHeader(key.toString(), value.toString());
});
}
List<BasicNameValuePair> paramList = new ArrayList<>();
params.forEach((key, value) -> {
paramList.add(new BasicNameValuePair(key.toString(), value.toString()));
});
HttpEntity formEntity = new UrlEncodedFormEntity(paramList, "utf-8");
msg.setEntity(formEntity);
response = request.execute(msg);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
result = EntityUtils.toString(entity, "UTF-8");
}
return result;
} /**
* do upload and download operation
*/
static String postFileImage(String url, Map<Object, Object> textBody, List<String> fileList, Map<Object, Object> header, int ttl) throws KeyStoreException, IOException,
KeyManagementException, NoSuchAlgorithmException {
String result = null;
CloseableHttpClient request = sslIgnoreClient();
HttpPost msg = new HttpPost();
//msg.setHeader(key,value);
if (header != null) {
header.forEach((key, value) -> {
msg.addHeader(key.toString(), value.toString());
});
}
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(ttl).setSocketTimeout(ttl).build();
msg.setConfig(requestConfig);
MultipartEntityBuilder builder = MultipartEntityBuilder.create(); fileList.forEach(item -> {
File f = new File(item);
try {
builder.addBinaryBody(
"file",
new FileInputStream(f),
ContentType.APPLICATION_OCTET_STREAM,
f.getName()
);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}); textBody.forEach((key, value) -> {
builder.addTextBody(String.valueOf(key), String.valueOf(value), ContentType.TEXT_PLAIN);
}); msg.setEntity(builder.build());
response = request.execute(msg);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
long length = entity.getContentLength();
byte[] res = null;
res = EntityUtils.toByteArray(entity);
result = new String(res, StandardCharsets.UTF_8);
} return result; } }
org.apache.httpcomponents.httpclient的更多相关文章
- httpclient工具使用(org.apache.httpcomponents.httpclient)
httpclient工具使用(org.apache.httpcomponents.httpclient) 引入依赖 <dependency> <groupId>org.apac ...
- org.apache.httpcomponents httpclient 发起HTTP JSON请求
1. pom.xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactI ...
- org.apache.httpcomponents:httpclient 工具类
基于httpclient 版本4.4.1 因为http连接需要三次握手,在需要频繁调用时浪费资源和时间 故采用连接池的方式连接 根据实际需要更改 连接池最大连接数.路由最大连接数 另一个需要注意的是 ...
- org.apache.commons.httpclient工具类
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpcl ...
- JAVA中使用Apache HttpComponents Client的进行GET/POST请求使用案例
一.简述需求 平时我们需要在JAVA中进行GET.POST.PUT.DELETE等请求时,使用第三方jar包会比较简单.常用的工具包有: 1.https://github.com/kevinsawic ...
- org.apache.commons.httpclient工具类(封装的HttpUtil)
import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...
- Apache HttpComponents Client 4.0快速入门/升级-2.POST方法访问网页
Apache HttpComponents Client 4.0已经发布多时,httpclient项目从commons子项目挪到了HttpComponents子项目下,httpclient3.1和 h ...
- Apache HttpComponents中的cookie匹配策略
Apache HttpComponents中的cookie匹配策略 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre. ...
- org.apache.commons.httpclient和org.apache.http.client区别(转)
官网说明: http://hc.apache.org/httpclient-3.x/ Commons HttpClient项目现已结束,不再开发.它已被其HttpClient和HttpCore模块中的 ...
随机推荐
- FLUSH+RELOAD技术
FLUSH+RELOAD技术是PRIME+PROBE技术的变体,攻击间谍进程和目标进程的共享页.在共享页中,间谍进程可以确保一个特定的内存的映射从整个cache的层级中剔除.间谍进程就是使用这一点去监 ...
- 0级搭建类005-Oracle Solaris Unix安装 (11.4) 公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- spring boot 文件上传工具类(bug 已修改)
以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...
- java - CAS及CAS底层原理
CAS是什么? CAS的全称为Compare-And-Swap它是一条CPU并发原语,也就是在CPU硬件层面上来说比较并且判断是否设置新值这段操作是原子性的,不会被其他线程所打断.在JAVA并发包ja ...
- Python实现DBSCAN聚类算法(简单样例测试)
发现高密度的核心样品并从中膨胀团簇. Python代码如下: # -*- coding: utf-8 -*- """ Demo of DBSCAN clustering ...
- Android_Activity的生命周期、跳转方式及参数传递、启动模式。
Activity的生命周期: onCreat ,onStart,onResume,onPause,onRestart,onStop,onDestroy Activity之间的跳转分为显式跳转和隐式跳转 ...
- Hive0.13_函数
Hive函数大全 一.关系运算: 1. 等值比较: = 2. 等值比较:<=> 3. 不等值比较: <>和!= 4. 小于比较: < 5. 小于等于比较: <= 6 ...
- oracle三个网络配置文件(listener.ora、tnsname.ora、sqlnet.ora)的作用
oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下. 1. sqlne ...
- jdbc中SQL语句拼接java变量
例如:String sql = "select * from user where username='" + username + "' and password =' ...
- Joining Data with dplyr in R
目录 inner_join Joining three tables left_join right-join full_join semi- and anti-join Stack Overflow ...