我想获取一个使用TLSv1协议的站点,但是当我使用fetch进行请求时,react native将引发错误:Network request failed
。
我通常是这样获取的:
fetch('https://stu255.ntust.edu.tw/ntust_stu/stu.aspx')
.then((r) => { return r.text(); })
.catch((e) => { console.error(e); })
.then((r) => { console.warn(r); });
该站点的认证是:
---
SSL handshake has read 3076 bytes and written 632 bytes
---
New, TLSv1/SSLv3, Cipher is RC4-SHA
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1
Cipher : RC4-SHA
Session-ID: D118 0000199B804B84C7EC06FF6CAFEBEB96617DA1721EFA42FD2CD1B350350C
Session-ID-ctx:
Master-Key: A93C9E54CEAB4235C64EB3A0799CA3761F13EACEA0B0FE34D377DBD615A666CE13EB7E58DF18E96E30AA1C97644CF050
Start Time: 1530941378
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
最后,我发现React本机使用okhttp在Android中实现网络,但默认情况下不支持TLSv1.0。
我想知道如何在Android上启用TLSv1.0吗?
谢谢。