zoukankan      html  css  js  c++  java
  • 请求第三方https接口

    1. 生成证书
      根据第三方提供的.cer证书,我们可以用JDK的keytool工具生成keystore密钥库文件
      a. keytool -import -v -file E:ceresb.*****-p.com.cn.cer -keystore F:tomcat.keystor

      b. 输入密码(自己给的密码)

      c.回车提示是否信任此证书(y信任)

    2. 代码请求https接口

      public static String httpsPost(String url, String json) {
      InputStream inputStream = null;
      String jsonString = "";
      try {
      DefaultHttpClient client = new DefaultHttpClient();
      CloseableHttpClient httpClient = HttpClients.createDefault();
      client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
      client.getParams().setParameter(CoreProtocolPNames.USER_AGENT,
      " Mozilla/5.0 (Windows NT 6.2; rv:18.0) Gecko/20100101 Firefox/18.0");

       	// 获得密匙库
       	KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
       	ClassPathResource resource = new ClassPathResource("tomcat.keystore");
      
       	// 获取输入流
       	inputStream = resource.getInputStream();
      
       	// 密匙库的密码
       	trustStore.load(inputStream, "123456".toCharArray());
      
       	// 注册密匙库
       	SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
      
       	// 不校验域名
       	socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
       	Scheme sch = new Scheme("https", 443, socketFactory);
       	client.getConnectionManager().getSchemeRegistry().register(sch);
      
       	HttpPost httppost = new HttpPost(url);
       	StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
       	httppost.setEntity(entity);
      
       	// 发起请求
       	HttpResponse response = client.execute(httppost);
      
       	// 获取响应
       	HttpEntity resEntity = response.getEntity();
       	jsonString = EntityUtils.toString(resEntity, "utf-8");
       } catch (Exception e) {
       	e.printStackTrace();
       } finally {
       	try {
       		inputStream.close();
       	} catch (IOException e) {
       		e.printStackTrace();
       	}
       }
       return jsonString;
      

      }

  • 相关阅读:
    python 找到列表中满足条件的元素
    android activity动画anim
    Maven实战(Maven+Nexus建立私服【Linux系统】)
    linux命令
    服务端工程师入门与进阶 Java 版
    jvm字节占用空间分析
    Spark Streaming容错的改进和零数据丢失
    Spark分布式计算和RDD模型研究
    Apache Curator入门实战
    spark简单总结—短小精悍
  • 原文地址:https://www.cnblogs.com/fanshu/p/10189351.html
Copyright © 2011-2022 走看看