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)相关推荐

  1. 使用Java访问https接口javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

    jdk1.6,证书:SHA256+TLSv1.2 使用Java访问https://**************** 接口     控制台提示握手失败错误:javax.net.ssl.SSLHandsh ...

  2. Android HttpClient访问https接口

    由于之前项目的接口需要安全测评,从HTTP变成了https,搞得Android这边也要变,原本以为和移动端没关系.事实错了...我用的是HttpClient来进行访问,没有进行证书验证则会报错.And ...

  3. curl 访问https接口_微信/QQ域名检测-最新腾讯域名检测官方接口

    背景 最近手里有个项目需要检测域名在微信里是否可以打开,如果被微信拦截,则需要进行下一步操作,所以需要判断域名的状态,但是微信官方并没有提供相关查询的方法,最后在网上找到了这个接口地址,分享给有需要的 ...

  4. KETTLE 请求HTTPS接口

    KETTLE本身提供了HTTP client.HTTP post.REST client组件可以访问HTTP接口,这些组件在访问HTTPS接口时有时会报错:unable to find valid c ...

  5. 前端请求接口post_程序员:HttpClient进行post请求的工具类,访问第三方接口HTTPS...

    HTTPS (英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure) 是一 ...

  6. 使用自签证书利用浏览器进行HTTPS接口的安全访问

    HTTPS的基本工作原理想必对于许多开发者来说是非常熟悉的了,我们一起先回忆一下HTTP常见的八股文中的描述: 客户端(浏览器)访问 HTTPS 的URL: 服务器返回 HTTPS 使用的 CA 证书 ...

  7. Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题

    最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下. Tushare简介 Tushare是一个免费.开源的python财经数据接口 ...

  8. Apache服务器访问过慢分析及解决

    起因:线上的一台服务器,最近总是出现 访问 很慢的情况发生,点击一个链接要2秒钟以上才能打开,按照我们对于访问人数的估计,服务器应该不至于响应这么慢,从而需要针对这个问题进行分析,来解决网站访问过慢. ...

  9. 使用HttpClient访问第三方api(绕过SSL证书验证访问https)

    本人出于兴趣开发一个关于steam信息查询的小程序时,为获取steam信息通过HttpClient访问官方的api接口时会因为没有ssl证书导致后台报异常 异常:sun.security.valida ...

最新文章

  1. 剑指offer:面试题29. 顺时针打印矩阵
  2. 20145223《信息安全系统设计》 实验四 驱动程序设计
  3. FPGA 控制 FLASH 之 Startup 原语使用相关链接
  4. css样式之 direction
  5. SSM个人遇到的问题汇总——不定期更新
  6. 酷Q 小i——添加应用
  7. 使用 HTML5 Canvas 绘制出惊艳的水滴效果
  8. 编写一个程序,找到大于平均值的项的数目
  9. 一朵更好的云 MADE IN 青云QingCloud
  10. 日期的包装 java,Java基础之Java常用类--Object类,字符串相关类,包装类,日期相关类,数字相关类...
  11. WebRTC:会话描述协议SDP
  12. 线性表的链式存储结构 ( 链表 )
  13. mysql 分离和附加数据库_分离数据库和附加数据库有什么区别
  14. 听李天飞《大话西游》有感
  15. bsc链发行代币遇到了问题
  16. linux系统发qq邮箱文件,Linux打印文件和发送邮件
  17. requirejs的源码学习(01)——初始化流程
  18. 数据结构(严蔚敏C语言版)代码实现持续更新中
  19. 开源视频播放器IjkPlayer使用记录之一--demo的使用及View的简要介绍
  20. 魔兽世界 windows 7 下 界面 问题

热门文章

  1. iOS内存管理系列之一:对象所有权与引用计数
  2. [NLP] TextCNN模型原理和实现
  3. Spring Boot学习笔记——Spring Boot与ActiveMQ的集成
  4. 【转载】java InputStream读取数据问题
  5. PHP网站如何解决大流量与高并发的问题
  6. 利用路由器端口映射远程连接
  7. 大型网站的架构设计问题—-大型高并发高负载网站的系
  8. Mybatis自学日志02
  9. Drools集成SpringBootStarter
  10. Linux查看网卡带宽