我使用apache HttpClient 4.5的代码在单独的java应用程序中工作正常,当我带到android项目时我有这个错误
java.lang.nosuchfielderror org.apache.http.conn.ssl.allowallhostnameverifier
代码:
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(builder.build(),new HostnameVerifier(){
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
});
我导入相同的库,我googleit并说重复的参考或罐子错过但没有 我从这里下载jar https://hc.apache.org/downloads.cgi 如果问题出现在与android不兼容的罐子里,我喜欢在不使用gradle maven或类似的东西的情况下找到正确的罐子,因为市长时间离线且在线时只能浏览网页 感谢
答案 0 :(得分:1)
您无法导入httpclient,因为它会与现有库产生冲突。
但是你可能想要使用它,这是apache建议的官方方式
https://hc.apache.org/httpcomponents-client-4.3.x/android-port.html
背景
谷歌Android 1.0发布时带有Apache的BETA前快照 HttpClient的。恰逢第一个Android发布的Apache HttpClient 4.0 API必须过早冻结,而许多 接口和内部结构仍未完全解决。如 Apache HttpClient 4.0正在成熟,该项目期待着谷歌 将最新的代码改进合并到他们的代码树中。 不幸的是没有发生。发布了Apache HttpClient的版本 与Android有效地成为一个分叉。最终谷歌决定 在拒绝的同时停止进一步开发他们的叉子 升级到Apache HttpClient的股票版本引用兼容性 关注是这种决定的原因。结果那些Android 希望继续使用Apache HttpClient API的开发人员 Android无法利用更新的功能,性能 改进和错误修复。
用于Android的Apache HttpClient 4.3端口旨在补救 通过提供与谷歌兼容的官方版本的情况 机器人。
或者,您也可以考虑okhttp,但是,似乎okhttp现在包含在Android M中,我还没有测试它是否会有类似的冲突。 okhttp,有两种类型的包装器,一种类似于urlConnection,一种类似于httpclient,你应该能够在很短的时间内进行迁移。