• 使用HttpsURLConnection发送POST请求


    重写X509TrustManager

     1 private static TrustManager myX509TrustManager = new X509TrustManager() { 
     2 
     3     @Override 
     4     public X509Certificate[] getAcceptedIssuers() { 
     5         return null; 
     6     } 
     7 
     8     @Override 
     9     public void checkServerTrusted(X509Certificate[] chain, String authType) 
    10     throws CertificateException { 
    11     } 
    12 
    13     @Override 
    14     public void checkClientTrusted(X509Certificate[] chain, String authType) 
    15     throws CertificateException { 
    16     } 
    17 };
     1 static public String SendHttpsPOST(String url, List<NameValuePair> param, String data) 
     2 { 
     3         String result = null; 
     4         
     5 
     6         //使用此工具可以将键值对编码成"Key=Value&Key2=Value2&Key3=Value3”形式的请求参数 
     7         String requestParam = URLEncodedUtils.format(param, "UTF-8"); 
     8         try { 
     9             //设置SSLContext 
    10             SSLContext sslcontext = SSLContext.getInstance("TLS"); 
    11             sslcontext.init(null, new TrustManager[]{myX509TrustManager}, null);
    12 
    13             //打开连接
    14         //要发送的POST请求url?Key=Value&Key2=Value2&Key3=Value3的形式 
    15            URL requestUrl = new URL(url + "?" + requestParam); 
    16            HttpsURLConnection httpsConn = (HttpsURLConnection)requestUrl.openConnection();
    17 
    18             //设置套接工厂 
    19             httpsConn.setSSLSocketFactory(sslcontext.getSocketFactory());
    20 
    21             //加入数据 
    22             httpsConn.setRequestMethod("POST"); 
    23             httpsConn.setDoOutput(true); 
    24             DataOutputStream out = new DataOutputStream( 
    25                     httpsConn.getOutputStream()); 
    26             if (data != null) 
    27                 out.writeBytes(data); 
    28             
    29             out.flush(); 
    30             out.close();
    31 
    32             //获取输入流 
    33             BufferedReader in = new BufferedReader(new InputStreamReader(httpsConn.getInputStream())); 
    34             int code = httpsConn.getResponseCode(); 
    35             if (HttpsURLConnection.HTTP_OK == code){ 
    36                 String temp = in.readLine(); 
    37                 /*连接成一个字符串*/ 
    38                 while (temp != null) { 
    39                     if (result != null) 
    40                         result += temp; 
    41                     else 
    42                         result = temp; 
    43                     temp = in.readLine(); 
    44                 } 
    45             } 
    46         } catch (KeyManagementException e) { 
    47             e.printStackTrace(); 
    48         } catch (NoSuchAlgorithmException e) { 
    49             e.printStackTrace(); 
    50         } catch (MalformedURLException e) { 
    51             e.printStackTrace(); 
    52         } catch (ProtocolException e) { 
    53             e.printStackTrace(); 
    54         } catch (IOException e) { 
    55             e.printStackTrace(); 
    56         }
    57 
    58         return result; 
    59 }
  • 相关阅读:
    Node.js 安装配置
    ITerm2配置-让你的mac命令行更加丰富高效
    ECharts 图表工具
    Vue 安装
    element-ui 安装
    mysql高级查询
    数据库第三章 参考
    DML和DQL 总结
    数据库第二章 参考答案
    数据库编程技术 第一章
  • 原文地址:https://www.cnblogs.com/cxjchen/p/3152832.html
Copyright © 2020-2023  润新知