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. 0级搭建类010-Oracle Linux 6.x安装(OEL 6.10) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  2. 《javascript正则表达式迷你书》笔记

    字符匹配攻略 横向匹配--通过量词 {m,n} {m,} {m} ? + * 贪婪匹配 后面跟?号 惰性匹配 纵向匹配--通过字符组 \d \D \w \W \s \S . \w表示[0-9a-zA- ...

  3. Selenium3+python自动化009- js之屏幕滑动和日历操作

    一.js的滑屏 1)以下脚本实现js滑屏scroll="document.documentElement.scrollTop=800"#垂直滚动 pxscroll = " ...

  4. python实现进度条下载

    核心代码: for i in range(10): print('\r' + '>' * i, end='') 示例展示以搜狗输入法为例: import timeimport requestsi ...

  5. 利用Marshal来管理非托管资源

    void MarshalChartDemo() { string name = "xuwei"; IntPtr pName = Marshal.AllocHGlobal(name. ...

  6. CodeForces 1141B

    https://vjudge.net/problem/CodeForces-1141B #include<bits/stdc++.h> using namespace std; int m ...

  7. bzoj 1483

    Description N个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. Input 第 ...

  8. ubuntu中安装和卸载apache2

    1. 安装apache2 安装命令: sudo apt-get install apache2 启动/停止/重启apache2: service apache2 start/stop/restart ...

  9. SCRIPT429: Automation 服务器不能创建对象

    安全模式设置成“中”,如果javascript脚本中报这个错误,应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可. 注意如果您将相应的网站设成“受信任的站点”,必须对“受信任的 ...

  10. 解决问题:SVN重命名后,不允许提交

    第一步:选中要修改的文件,右键,修改文件名称,具体操作如下图所示 第二步:提交,提交时,不要提交修改的文件,在上一层文件夹上提交