正如我们所知,在API 23Apache HTTP Client
中删除
但是,Volley
图书馆目前仍然使用Apache
的图书馆,例如
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.cookie.DateUtils;
我已经测试了 2 个项目:一个带有compileSdkVersion 22
,另一个带有compileSdkVersion 23
,得到了 2 个屏幕截图:
compileSdkVersion 22
compileSdkVersion 23
我有两个问题:
- 当然,使用 Volley 的 API23 项目仍然可以成功运行。但是,我不明白他们如何
Apache
在运行时使用 's 库,他们是在 API22 或更低版本中找到的吗? - 而且,不知道在不久的将来,Volley 会不会升级到不再使用
Apache
's library?如果没有,我当前的项目将来在Apache
's 库完全删除且不受支持时仍然可以工作吗?
也许我的英语不是很清楚,但是,希望你能理解我的问题。
任何解释将不胜感激。
更新:
根据@random 的评论,我使用谷歌的官方 Volley 库(我的意思是谷歌在此处git clone https://android.googlesource.com/platform/frameworks/volley
建议的)创建了一个新的 API23 项目,而不是在文件中使用。是的,在构建项目时出现了缺少 Apache 库的错误。必须按记录添加到文件中。compile 'com.mcxiaoke.volley:library:1.0.17'
build.gradle
useLibrary 'org.apache.http.legacy'
build.gradle
第二次更新:
我刚刚定制了谷歌的凌空(作为我项目中的一个模块)删除 Apache 库。请前往我的 GitHub 示例项目供您参考。但是,请注意,它并没有针对所有案例进行全面测试,我只测试了 02 个简单案例:GET
并且POST
使用我的 Web 服务请求ASP.NET Web API
.