android https超时,java – 即使设置了连接超时,HTTPS请求也仅在20以下的Android API上挂起...

我创建了一个

java.net.HttpURLConnection并且它挂在了connection.connect()行,即使我已经设置了连接超时. “b4 connect”被记录,“连接后”永远不会被记录.我已经在API 21及更高版本上进行了测试并且工作正常,但是我在API 16-19上的测试中遇到了这个问题.这是我的代码如下.请求使用https,后端使用标准的nginx https配置.

URL url = new URL(urlString);

HttpURLConnection connection = (HttpURLConnection)url.openConnection();

try {

connection.setRequestMethod("GET");

connection.setRequestProperty("charset", "utf-8");

connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36");

connection.setConnectTimeout('\uea60');

connection.setReadTimeout('\uea60');

connection.setInstanceFollowRedirects(false);

Log.d(TAG, "b4 connect");

connection.connect();

Log.d(TAG, "after connect");

if(connection.getResponseCode() == 200) {

return IOUtils.toString(connection.getInputStream(), "UTF-8");

}

} catch (Exception var) {

throw new Exception(var.getMessage());

} finally {

connection.disconnect();

}

return null;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值