Android SDK下载异常(hostname in certificate didn't match)

UPDATE 2015.10.23

原hosts地址已经失效,最新hosts地址为

203.208.41.144

如果以后hosts地址失效,大家可以去GitHub搜索"Google Hosts",在项目中获取最新google服务器ip地址,地址我就不贴了,获取到最新hosts地址后,可以使用本机ping一下,或者使用http://ping.chinaz.com进行测试。

下面是原文:

对于Android开发者来说,每次下载更新 Android SDK 都是一次痛苦的经历,因为 google 被墙,每次我们都要想尽办法来更新 SDK, 以前我是通过 VPN 来下载 SDK,但是也只能保证稍微稳定一点的下载速度,每次更新还是要耗费很长的时间来等待,上星期我的同事发现通过修改 hosts 文件并将下载地址域名指向 203.208.46.146 即可加快速度,而且下载速度基本上都是4,5M左右,这让我惊喜异常,说实话,其实我甚至大家都很早知道可以通过修改 host 文件来提高 SDK 下载速度,但是把域名指向哪里是一个问题,以前我曾经按照一篇帖子来试过修改 host ip 的方法,先通过http://ping.chinaz.com 来 ping http://dl-ssl.google.com 这个域名(Android SDK下载地址所用的域名),然后点击查询即可,如图所示: 
android-sdk-00

在处理证书中主机名与 `<maven.aliyun.com>` 不匹配的问题时,可以参考处理类似 `hostname in certificate didn't match` 问题的思路。当学习 `httpclient` 对象请求时出现 `javax.net.ssl.SSLException: hostname in certificate didn‘t match` 报错,是因为证书不匹配主机名的问题,可在请求时添加修改 `org.apache.http` 的主机名验证的代码来解决,示例代码如下: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.conn.ssl.AllowAllHostnameVerifier; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.apache.http.conn.ssl.SSLSocketFactory; public class HttpClientExample { public static String makeRequest(String[] strings) { final String url = strings[0]; // 得到 httpclient 对象 DefaultHttpClient client = new DefaultHttpClient(); // 封装 get 请求 HttpGet hg = new HttpGet(url); // 获取返回的 response try { // 修改 org.apache.http 的主机名验证解决问题 SSLSocketFactory.getSocketFactory().setHostnameVerifier(new AllowAllHostnameVerifier()); HttpResponse response = client.execute(hg); // 获取状态码 int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 200) { // entity 里面封装的数据 HttpEntity entity = response.getEntity(); // 这个 result 就是 json 字符串,剩下的就是解析工作了 String s = EntityUtils.toString(entity); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } } ``` 在 Maven 配置中,若要使用该方法,可在 Java 代码里使用上述逻辑来请求 `<maven.aliyun.com>`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值