引言
我们都知道,Volley是封装良好的Http请求框架,那它能否用于Https请求呢?
答案是肯定的,有码为证,首先我们看一下创建请求队列的代码:
|
|
由于真正执行请求的是Stack,我们看一下HurlStack这个类,相关代码如下:
|
|
显然,HurlStack是支持Https请求的,只是由于Volley开放的接口中没有带SSLSocketFactory参数,所以调用的是HurlStack的无参构造方法,而这个默认构造方法由于sslSocketFactory为null,从而导致不支持Https请求。显然,我们要添加Https请求的话也很简单,只要在Volley中添加一个新的接口即可,如下所示:
|
|
这样虽然解决了问题,但是实际上封装不够好,更好的方法是让用户只要提供InputStream即可,代码如下所示:
|
|
比如,证书文件(“srca.cer”)在assets下,那么只需要进行如下调用即可:
|
|