新浪微博请求数据出错(Android Volley Https证书不信任)的解决方案
今天在调用新浪微博android sdk时出现Https证书不信任的问题,查了很多资料终于解决了,在这里把解决方案分享给大家。
错误如下:
javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature
具体错误如下:
http请求No peer certificate的解决方法但是里面提出的解决方案都是针对自己实现HttpClient或者HttpURLConnection的,而我是使用了Google官方提供的Volley,如果要修改源码的话比较麻烦。于是我大胆猜测Volley底层是采用HttpURLConnection实现的,可以在进行StringRequest之前设置一个X509TrustManager。
首先新建一个类FakeX509TrustManager:
FakeX509TrustManager.allowAllSSL();mStringRequest = new StringRequest(Request.Method.POST,url,getDefaultSuccessListener(),mErrorListener){ @Override protected Map<String, String> getParams() throws AuthFailureError { return params; }};mRequestQueue.add(mStringRequest);再次运行则发现可以正常获取数据。
如果大家觉得对自己有帮助的话,还希望能帮顶一下,谢谢:)个人博客:http://blog.csdn.net/zhaoxy2850本文地址:http://blog.csdn.net/zhaoxy_thu/article/details/12360473转载请注明出处,谢谢!