全网整合营销服务商

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

免费咨询热线: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 


相关文章: c# 在高并发下使用反射发射(Reflection.Emit)的性能  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  如何正确选择百度移动适配建站域名?  建站之星如何实现五合一智能建站与营销推广?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  ,怎么用自己头像做动态表情包?  建站为何优先选择香港服务器?  如何通过虚拟主机快速搭建个人网站?  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何在阿里云部署织梦网站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何登录建站主机?访问步骤全解析  如何制作一个表白网站视频,关于勇敢表白的小标题?  建站之星各版本价格是多少?  如何在云虚拟主机上快速搭建个人网站?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  小程序网站制作需要准备什么资料,如何制作小程序?  高防服务器:AI智能防御DDoS攻击与数据安全保障  专业网站建设制作报价,网页设计制作要考什么证?  建站之星伪静态规则如何设置?  如何选择高效便捷的WAP商城建站系统?  如何高效利用200m空间完成建站?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  如何通过多用户协作模板快速搭建高效企业网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  制作门户网站的参考文献在哪,小说网站怎么建立?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  江苏网站制作公司有哪些,江苏书法考级官方网站?  建站之星2.7模板快速切换与批量管理功能操作指南  建站之星安装失败:服务器环境不兼容?  如何选择适配移动端的WAP自助建站平台?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  如何在万网自助建站中设置域名及备案?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何在云服务器上快速搭建个人网站?  建站之星上传入口如何快速找到?  XML的“混合内容”是什么 怎么用DTD或XSD定义  建站主机选择指南:服务器配置与SEO优化实战技巧  Python lxml的etree和ElementTree有什么区别  如何用IIS7快速搭建并优化网站站点?  公司网站设计制作厂家,怎么创建自己的一个网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站之星如何取消后台验证码生成?  北京建设网站制作公司,北京古代建筑博物馆预约官网? 

您的项目需求

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