使用HttpsURLConnection发送POST请求
2016-01-29 09:58
447 查看
重写X509TrustManager
private static TrustManager myX509TrustManager = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
};
private static TrustManager myX509TrustManager = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
}
};
static public String SendHttpsPOST(String url, List<NameValuePair> param, String data) { String result = null; //使用此工具可以将键值对编码成"Key=Value&Key2=Value2&Key3=Value3”形式的请求参数 String requestParam = URLEncodedUtils.format(param, "UTF-8"); try { //设置SSLContext SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[]{myX509TrustManager}, null); //打开连接 //要发送的POST请求url?Key=Value&Key2=Value2&Key3=Value3的形式 URL requestUrl = new URL(url + "?" + requestParam); HttpsURLConnection httpsConn = (HttpsURLConnection)requestUrl.openConnection(); //设置套接工厂 httpsConn.setSSLSocketFactory(sslcontext.getSocketFactory()); //加入数据 httpsConn.setRequestMethod("POST"); httpsConn.setDoOutput(true); DataOutputStream out = new DataOutputStream( httpsConn.getOutputStream()); if (data != null) out.writeBytes(data); out.flush(); out.close(); //获取输入流 BufferedReader in = new BufferedReader(new InputStreamReader(httpsConn.getInputStream())); int code = httpsConn.getResponseCode(); if (HttpsURLConnection.HTTP_OK == code){ String temp = in.readLine(); /*连接成一个字符串*/ while (temp != null) { if (result != null) result += temp; else result = temp; temp = in.readLine(); } } } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (ProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return result; }
相关文章推荐
- Android Http协议
- 网络数据截取工具-抓包
- 透过浏览器看HTTP缓存
- TC SRM 680(div 2) 1000pts
- HTTPS的建立流程
- 使用boost::asio开发网络服务器
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包
- [网络通信]socket编程相关
- 节点重新启动、驱逐或 CRS 意外重启
- 【开源中国Android客户端】源码分析 网络数据传输接口
- #TCP你学得会# 之 client重用连接之时
- #TCP你学得会# Wireshark中的"TCP Spurious Retransmission"
- 8、TCP报文重组合算法
- 关于Android HTTP请求URI中包含特殊字符,例如中文,空格等,请求400
- [TCP协议]三次握手及四次挥手
- 网络编程(三) 下载任务,支持断点续传
- 2016-1-28 图解HTTP(03)
- Android开发请求网络方式详解
- HttpURLConnetion的使用
- 一个简单的Socket分包程序