发表日期:2018-04 文章编辑:小灯 浏览次数:6658
public class HttpsTest {
public static void test(Context context)throws Exception {
//获得ssl上下文
SSLContext sslContext = SSLContext.getInstance("TLS");
//信任证书管理器
TrustManagerFactory trustManager = TrustManagerFactory.getInstance("X509");
//证书 第一种,导入成bks或者jks的证书
// KeyStore keyStore = KeyStore.getInstance("BKS");
// keyStore.load(context.getAssets().open("12306.bks"),"123456".toCharArray());
//证书 第二种,直接使用cer证书
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(context.getAssets().open("srca.cer"));
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, null);
keyStore.setCertificateEntry("certificate", cert);
trustManager.init(keyStore);
//KeyManager[] 第一个参数是授权的密钥管理器,用来授权验证。第二个是被授权的证书管理器,
//用来验证服务器端的证书。只验证服务器数据,第一个管理器可以为null
//ssl socket工厂创建socket
sslContext.init(null,trustManager.getTrustManagers(),null);
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
SSLSocket socket = (SSLSocket) socketFactory.createSocket("www.12306.cn", 443);
// Socket socket = SSLSocketFactory.getDefault().createSocket("www.12306.cn", 443);//有ca认证的证书使用默认
doHttps(socket);
}
static void doHttps(Socket socket)throws Exception {
//接受数据的输入流
final BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream()));
//发送数据 输出流
BufferedWriter bw =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
new Thread() {
@Override
public void run() {
while (true) {
String line =null;
try {
while ((line =br.readLine()) !=null) {
System.out.println("recv :" + line);
}
}catch (IOException e) {
e.printStackTrace();
}
}
}
}.start();
bw.write("GET / HTTP/1.1\r\n");
bw.write("Host: www.12306.cn\r\n\r\n");
bw.flush();
}
}
日期:2018-04 浏览次数:6657
日期:2017-02 浏览次数:3339
日期:2017-09 浏览次数:3537
日期:2017-12 浏览次数:3424
日期:2018-12 浏览次数:4677
日期:2016-12 浏览次数:4467
日期:2017-07 浏览次数:13539
日期:2017-12 浏览次数:3384
日期:2018-06 浏览次数:4162
日期:2018-05 浏览次数:4345
日期:2017-12 浏览次数:3465
日期:2017-06 浏览次数:3888
日期:2018-01 浏览次数:3835
日期:2016-12 浏览次数:3805
日期:2018-08 浏览次数:4330
日期:2017-12 浏览次数:3592
日期:2016-09 浏览次数:6283
日期:2018-07 浏览次数:3106
日期:2016-12 浏览次数:3124
日期:2018-10 浏览次数:3280
日期:2018-10 浏览次数:3369
日期:2018-09 浏览次数:3463
日期:2018-02 浏览次数:3483
日期:2015-05 浏览次数:3415
日期:2018-09 浏览次数:3208
日期:2018-06 浏览次数:3333
日期:2017-02 浏览次数:3778
日期:2018-02 浏览次数:4233
日期:2018-02 浏览次数:4038
日期:2016-12 浏览次数:3481
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.