使用HttpsURLConnection发送POST请求

来源:互联网 发布:手机运动软件 编辑:程序博客网 时间:2024/05/29 03:30

重写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 }
0 0
原创粉丝点击