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

发布时间 - 2026-01-11 02:51:59    点击率:

本文介绍了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 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 重庆市网站制作公司,重庆招聘网站哪个好?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何处理表单验证?(Requests代码示例)  MySQL查询结果复制到新表的方法(更新、插入)  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  EditPlus中的正则表达式 实战(4)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  制作公司内部网站有哪些,内网如何建网站?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  焦点电影公司作品,电影焦点结局是什么?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Laravel如何处理文件下载请求?(Response示例)  如何挑选高效建站主机与优质域名?  Laravel如何配置和使用缓存?(Redis代码示例)  Python3.6正式版新特性预览  黑客入侵网站服务器的常见手法有哪些?  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  如何用好域名打造高点击率的自主建站?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何在搬瓦工VPS快速搭建网站?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  Swift开发中switch语句值绑定模式  如何在IIS中配置站点IP、端口及主机头?  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  微信h5制作网站有哪些,免费微信H5页面制作工具?  香港网站服务器数量如何影响SEO优化效果?  简历在线制作网站免费版,如何创建个人简历?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何在万网开始建站?分步指南解析  如何在VPS电脑上快速搭建网站?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  Android中AutoCompleteTextView自动提示  打造顶配客厅影院,这份100寸电视推荐名单请查收  如何自定义建站之星模板颜色并下载新样式?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  浅析上传头像示例及其注意事项  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭