博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Apache HttpComponents访问https接口(及老版本DefaultHttpClient deprecated)
阅读量:7211 次
发布时间:2019-06-29

本文共 2566 字,大约阅读时间需要 8 分钟。

hot3.png

前言

最近公司做了一组使用https协议证书加密的接口,为了能够使用户比较容易的使用这套接口,于是乎做了一个访问的例子程序。本文记录一下这个例子程序。

 

DefaultHttpClient deprecated

https的访问使用了Apache HttpComponents工具,在网上一些早一些版本的例子中使用了DefaultHttpClient类来创建请求。但是在4.3版本以后DefaultHttpClient类已经不推荐使用了,于是本例子改用CloseableHttpClient类来创建请求。

DefaultHttpClient的官方API说明

Deprecated. 

(4.3) use HttpClientBuilder see also CloseableHttpClient.

 

例子

直接上代码很简单的程序

maven引入包

org.apache.httpcomponents
httpclient
4.5.3

测试代码

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

你可能感兴趣的文章
Linux 性能测试工具UnixBench(转载)
查看>>
Android Espresso使用
查看>>
Sed 删除包含某些字符串的行
查看>>
iOS JSON序列化与反序列化
查看>>
maven的安装和eclipse的配置以及构建mahout基本项目
查看>>
SQL Server删除distribution数据库二
查看>>
从吸睛到吸金,城市发展的幕后推手竟然是……
查看>>
VMware ubuntu 添加新的挂载盘
查看>>
作为一枚学生党,如何快速通过拉好友赚取生活费!
查看>>
php请求页面将返回的页面发送email
查看>>
#土豆记事#教你开发Android App之 —— Hello Android
查看>>
安全机构 abuse.ch 公布近10万个恶意网站
查看>>
若依后台管理系统 3.3 发布,新增多项功能
查看>>
三步教你学会git
查看>>
高防服务器,高防免费服务器,阿里云服务器高防价格
查看>>
JavaScript中8个常见的陷阱
查看>>
使用脚本在Linux服务器上自动安装Kubernetes的包管理器Helm
查看>>
15个顶级Java多线程面试题及回答
查看>>
STL中deque,queue,stack,list的学习
查看>>
带protobuf的通用型makefile
查看>>