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;
      

      }

  • 相关阅读:
    C++ virtual虚函数
    drawable以及Bitmap的基本操作
    Runnable,Thread实现多线程以及Runnable的同步资源共享
    Upgrade Win10
    [Fiddler]Unable to Generate Certificate
    win8升级win10后的windows.old怎么删除
    一个WebForm中连接SQL Server的例子
    markdownpad2使用说明
    SliverLight(how to show data point on the column series)
    SQLServer 在Visual Studio的2种连接方法
  • 原文地址:https://www.cnblogs.com/fanshu/p/10189351.html
Copyright © 2011-2022 走看看