使用Apache HttpComponents访问https接口(及老版本DefaultHttpClient deprecated)
2019独角兽企业重金招聘Python工程师标准>>>
前言
最近公司做了一组使用https协议证书加密的接口,为了能够使用户比较容易的使用这套接口,于是乎做了一个访问的例子程序。本文记录一下这个例子程序。
DefaultHttpClient deprecated
https的访问使用了Apache HttpComponents工具,在网上一些早一些版本的例子中使用了DefaultHttpClient类来创建请求。但是在4.3版本以后DefaultHttpClient类已经不推荐使用了,于是本例子改用CloseableHttpClient类来创建请求。
DefaultHttpClient的官方API说明
Deprecated.
(4.3) use HttpClientBuilder see also CloseableHttpClient.
例子
直接上代码很简单的程序
maven引入包
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version></dependency>
测试代码
package pub.lichao.test.controller;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicHeader;
import org.apache.http.util.EntityUtils;/*** 利用HttpClient进行post请求*/
public class HttpClientUtil {/*** 发送post请求* @param url 资源的url* @param jsonstr json格式入参* @param charset 编码方式* @return*/public static String doPost(String url,String jsonstr,String charset){String result = null;try{//创建CloseableHttpClient类HttpClient httpClient = HttpClientBuilder.create().build();//创建post请求类HttpPost httpPost = new HttpPost(url);//增加支持json的http头信息httpPost.addHeader("Content-Type", "application/json");StringEntity se = new StringEntity(jsonstr);se.setContentType("text/json");se.setContentEncoding(new BasicHeader("Content-Type", "application/json"));httpPost.setEntity(se);//创建response请求HttpResponse response = httpClient.execute(httpPost);if(response != null){HttpEntity resEntity = response.getEntity();if(resEntity != null){//结果转换成string类型result = EntityUtils.toString(resEntity,charset);}}}catch(Exception e){e.printStackTrace();}return result;}/*** 测试方法* @param args*/public static void main(String[] args){String url = "https://openapi.puliantongxun.com/v1/get_token";String jsonStr = "{\"appId\":\"username\",\"appSecret\":\"secret\"}";String httpOrgCreateTestRtn = doPost(url, jsonStr, "utf-8");System.out.println("https result is :" + httpOrgCreateTestRtn);}
}
转载于:https://my.oschina.net/u/3452433/blog/994368
使用Apache HttpComponents访问https接口(及老版本DefaultHttpClient deprecated)相关推荐
- 使用Java访问https接口javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
jdk1.6,证书:SHA256+TLSv1.2 使用Java访问https://**************** 接口 控制台提示握手失败错误:javax.net.ssl.SSLHandsh ...
- Android HttpClient访问https接口
由于之前项目的接口需要安全测评,从HTTP变成了https,搞得Android这边也要变,原本以为和移动端没关系.事实错了...我用的是HttpClient来进行访问,没有进行证书验证则会报错.And ...
- curl 访问https接口_微信/QQ域名检测-最新腾讯域名检测官方接口
背景 最近手里有个项目需要检测域名在微信里是否可以打开,如果被微信拦截,则需要进行下一步操作,所以需要判断域名的状态,但是微信官方并没有提供相关查询的方法,最后在网上找到了这个接口地址,分享给有需要的 ...
- KETTLE 请求HTTPS接口
KETTLE本身提供了HTTP client.HTTP post.REST client组件可以访问HTTP接口,这些组件在访问HTTPS接口时有时会报错:unable to find valid c ...
- 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...
HTTPS (英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure) 是一 ...
- 使用自签证书利用浏览器进行HTTPS接口的安全访问
HTTPS的基本工作原理想必对于许多开发者来说是非常熟悉的了,我们一起先回忆一下HTTP常见的八股文中的描述: 客户端(浏览器)访问 HTTPS 的URL: 服务器返回 HTTPS 使用的 CA 证书 ...
- Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题
最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下. Tushare简介 Tushare是一个免费.开源的python财经数据接口 ...
- Apache服务器访问过慢分析及解决
起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢. ...
- 使用HttpClient访问第三方api(绕过SSL证书验证访问https)
本人出于兴趣开发一个关于steam信息查询的小程序时,为获取steam信息通过HttpClient访问官方的api接口时会因为没有ssl证书导致后台报异常 异常:sun.security.valida ...
最新文章
- 剑指offer:面试题29. 顺时针打印矩阵
- 20145223《信息安全系统设计》 实验四 驱动程序设计
- FPGA 控制 FLASH 之 Startup 原语使用相关链接
- css样式之 direction
- SSM个人遇到的问题汇总——不定期更新
- 酷Q 小i——添加应用
- 使用 HTML5 Canvas 绘制出惊艳的水滴效果
- 编写一个程序,找到大于平均值的项的数目
- 一朵更好的云 MADE IN 青云QingCloud
- 日期的包装 java,Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类...
- WebRTC:会话描述协议SDP
- 线性表的链式存储结构 ( 链表 )
- mysql 分离和附加数据库_分离数据库和附加数据库有什么区别
- 听李天飞《大话西游》有感
- bsc链发行代币遇到了问题
- linux系统发qq邮箱文件,Linux打印文件和发送邮件
- requirejs的源码学习(01)——初始化流程
- 数据结构(严蔚敏C语言版)代码实现持续更新中
- 开源视频播放器IjkPlayer使用记录之一--demo的使用及View的简要介绍
- 魔兽世界 windows 7 下 界面 问题