如何解决使用DefaultHttpClient在Android 2.2 FroYO上无法解析
|| 我在Android 2.2上使用ssl有一些困难 我为ssl定制的Http客户端可以在较早和较早版本的Android上正常运行, 但是在2.2版的https请求上并不能全部运行。 这是我的代码:public class SSLHttpClient extends DefaultHttpClient {
final Context context;
public SSLHttpClient(Context context,HttpParams params) {
super(params);
this.context = context;
}
@Override
protected ClientConnectionManager createClientConnectionManager() {
SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme(\"http\",PlainSocketFactory
.getSocketFactory(),80));
registry.register(new Scheme(\"https\",newSslSocketFactory(),443));
return new SingleClientConnManager(getParams(),registry);
}
private SSLSocketFactory newSslSocketFactory() {
try {
SSLSocketFactory sf = new SSLSocketFactory(keyStore,\"\",trustStore);
//---------some code--------------------------------------
return sf;
} catch (Exception e) {
throw new AssertionError(e);
}
}
}
我找到了一些类似的文章,但它们并不能解决我的问题。
也许有人面对这样的问题。
提前致谢......
解决方法
这样的配置对我有用(无需添加80端口即可对其进行测试):
SchemeRegistry registry = new SchemeRegistry();
SSLSocketFactory sslSocketFactory = SSLSocketFactory.getSocketFactory();
sslSocketFactory.setHostnameVerifier(SSLSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
registry.register(new Scheme(\"https\",sslSocketFactory,443));
SingleClientConnManager manager = new SingleClientConnManager(params,registry);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。