全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JAVA利用HttpClient进行HTTPS接口调用的方法

本文介绍了JAVA利用HttpClient进行HTTPS接口调用的方法,分享给大家,具体如下:

1.为了避免需要证书,所以用一个类继承DefaultHttpClient类,忽略校验过程。

import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;

/**
 * 用于进行Https请求的HttpClient 
 * @ClassName: SSLClient 
 * @Description: TODO
 * @author Devin <xxx> 
 * @date 2017年2月7日 下午1:42:07 
 * 
 */
public class SSLClient extends DefaultHttpClient {
  public SSLClient() throws Exception{
    super();
    SSLContext ctx = SSLContext.getInstance("TLS");
    X509TrustManager tm = new X509TrustManager() {
        @Override
        public void checkClientTrusted(X509Certificate[] chain,
            String authType) throws CertificateException {
        }
        @Override
        public void checkServerTrusted(X509Certificate[] chain,
            String authType) throws CertificateException {
        }
        @Override
        public X509Certificate[] getAcceptedIssuers() {
          return null;
        }
    };
    ctx.init(null, new TrustManager[]{tm}, null);
    SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    ClientConnectionManager ccm = this.getConnectionManager();
    SchemeRegistry sr = ccm.getSchemeRegistry();
    sr.register(new Scheme("https", 443, ssf));
  }
}

2.创建一个利用HttpClient发送post请求的工具类

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.message.BasicHeader;
import org.apache.http.util.EntityUtils;
/**
 * 利用HttpClient进行post请求的工具类
 * @ClassName: HttpClientUtil 
 * @Description: TODO
 * @author Devin <xxx> 
 * @date 2017年2月7日 下午1:43:38 
 * 
 */
public class HttpClientUtil {
  @SuppressWarnings("resource")
  public static String doPost(String url,String jsonstr,String charset){
    HttpClient httpClient = null;
    HttpPost httpPost = null;
    String result = null;
    try{
      httpClient = new SSLClient();
      httpPost = new HttpPost(url);
      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);
      HttpResponse response = httpClient.execute(httpPost);
      if(response != null){
        HttpEntity resEntity = response.getEntity();
        if(resEntity != null){
          result = EntityUtils.toString(resEntity,charset);
        }
      }
    }catch(Exception ex){
      ex.printStackTrace();
    }
    return result;
  }
}

3.测试代码

public static void main(String[] args){ 
    String url = "https://192.168.1.101/xxx";
    String jsonStr = "{xxx}";
    String httpOrgCreateTestRtn = HttpClientUtil.doPost(url, jsonStr, "utf-8");
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# java调用https接口  # java  # HTTPS接口调用  # httpclient接口  # Java利用httpclient通过get、post方式调用https接口的方法  # Java服务调用RestTemplate与HttpClient的使用详解  # Java原生HttpClient的使用详解  # Java使用HttpClient详细示例  # java中如何使用HttpClient调用接口  # 下午  # 给大家  # 为了避免  # 创建一个  # 大家多多  # gt  # xxx  # lt  # date  # authType  # SSLClient  # ClassName  # Https  # Description  # Devin  # author  # TODO  # tm  # TLS  # getInstance 


相关文章: 高性能网站服务器配置指南:安全稳定与高效建站核心方案  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  小型网站制作HTML,*游戏网站怎么搭建?  如何用腾讯建站主机快速创建免费网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  XML的“混合内容”是什么 怎么用DTD或XSD定义  linux top下的 minerd 木马清除方法  西安专业网站制作公司有哪些,陕西省建行官方网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  佛山网站制作系统,佛山企业变更地址网上办理步骤?  高性价比服务器租赁——企业级配置与24小时运维服务  建站主机服务器选购指南:轻量应用与VPS配置解析  如何快速打造个性化非模板自助建站?  云南网站制作公司有哪些,云南最好的招聘网站是哪个?  ,有什么在线背英语单词效率比较高的网站?  家庭服务器如何搭建个人网站?  测试制作网站有哪些,测试性取向的权威测试或者网站?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  存储型VPS适合搭建中小型网站吗?  如何在建站主机中优化服务器配置?  定制建站哪家更专业可靠?推荐榜单揭晓  无锡营销型网站制作公司,无锡网选车牌流程?  建站主机如何安装配置?新手必看操作指南  大型企业网站制作流程,做网站需要注册公司吗?  如何设置并定期更换建站之星安全管理员密码?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  建站之星官网登录失败?如何快速解决?  网站按钮制作软件,如何实现网页中按钮的自动点击?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  建站主机CVM配置优化、SEO策略与性能提升指南  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何通过西部建站助手安装IIS服务器?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何快速生成专业多端适配建站电话?  如何快速查询网址的建站时间与历史轨迹?  网站制作公司,橙子建站是合法的吗?  微信推文制作网站有哪些,怎么做微信推文,急?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  广平建站公司哪家专业可靠?如何选择?  如何选择网络建站服务器?高效建站必看指南  建站之星代理如何优化在线客服效率?  如何快速生成高效建站系统源代码?  建站之星安装模板失败:服务器环境不兼容?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站之星伪静态规则如何设置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。