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的更多相关文章

  1. httpclient工具使用(org.apache.httpcomponents.httpclient)

    httpclient工具使用(org.apache.httpcomponents.httpclient) 引入依赖 <dependency> <groupId>org.apac ...

  2. org.apache.httpcomponents httpclient 发起HTTP JSON请求

    1. pom.xml <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactI ...

  3. org.apache.httpcomponents:httpclient 工具类

    基于httpclient 版本4.4.1 因为http连接需要三次握手,在需要频繁调用时浪费资源和时间 故采用连接池的方式连接 根据实际需要更改  连接池最大连接数.路由最大连接数 另一个需要注意的是 ...

  4. org.apache.commons.httpclient工具类

    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpcl ...

  5. JAVA中使用Apache HttpComponents Client的进行GET/POST请求使用案例

    一.简述需求 平时我们需要在JAVA中进行GET.POST.PUT.DELETE等请求时,使用第三方jar包会比较简单.常用的工具包有: 1.https://github.com/kevinsawic ...

  6. org.apache.commons.httpclient工具类(封装的HttpUtil)

    import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...

  7. Apache HttpComponents Client 4.0快速入门/升级-2.POST方法访问网页

    Apache HttpComponents Client 4.0已经发布多时,httpclient项目从commons子项目挪到了HttpComponents子项目下,httpclient3.1和 h ...

  8. Apache HttpComponents中的cookie匹配策略

    Apache HttpComponents中的cookie匹配策略 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre. ...

  9. org.apache.commons.httpclient和org.apache.http.client区别(转)

    官网说明: http://hc.apache.org/httpclient-3.x/ Commons HttpClient项目现已结束,不再开发.它已被其HttpClient和HttpCore模块中的 ...

随机推荐

  1. H5_0013:CSS特色样式集

    按比例变化,同时又限制最大宽高 ".start-wrap {", " width:40%;", " top: 83.21%;", " ...

  2. mac /windows

    1.mac 和 windows 同样的浏览器展示的样式有偏差 考虑:字体的问题,mac/windows 的字体不一样 font-family 用法

  3. 求素数p的原根

    定义: 设m>1,gcd(a,m)=1,使得成立的最小正整数d为a对模m的阶,记为δm(a) 如果δm(a)=φ(m),则称a是模m的原根 定理:设m>1,gcd(a,m)=1,那么正整数 ...

  4. R 常用清洗函数汇总

    目录 1.which() 2.unique() 3.dplyr包 select() filter() arrange() group_by() mutate() transmutate() summa ...

  5. Struts2-057远程代码执行漏洞(s2-057/CVE-2018-11776)复现

    参考了大佬的链接:https://github.com/jas502n/St2-057 00x01前言 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用 ...

  6. MySQL8.0.11解压版安装详细教程

    1. 从官网下载zip包 官网网址(https://dev.mysql.com/downloads/mysql/) 2. 解压 将压缩包解压到一个目录(后续将此目录作为安装目录),我这里是解压到了D: ...

  7. 左边div固定宽度,右边div自适应撑满剩下的宽度--实现方法汇总

    神奇的事 其实有的方法(float.position.margin.flex)是有border像素的差 代码如下: <!DOCTYPE html><html><head ...

  8. SCSS的基本操作

    Sass是成熟.稳定.强大的CSS预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时继承了Sass强大的动态功能. 特性概览 CSS书写代码规模较大的Web应用时,容易造 ...

  9. hdu1716--全排列(dfs+有重复数字+输出格式)

    Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数.  Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...

  10. mybatis(五):源码分析 - sqlsource创建流程