我想在Android Studio中使用这些库:
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
我正在关注导师使用Eclipse的视频教程,所以我知道它有效。
但是我还需要添加哪些额外的东西/库才能使用它们?
答案 0 :(得分:63)
在sdk 23中弃用了HttpClient 。
您必须将URLConnection或sdk向下移动到22
仍然需要HttpClient with update gradle sdk 23
您必须在app / gradle中添加HttpClient的依赖项
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
...
}
答案 1 :(得分:40)
HttpClient在Android 5.1中已弃用,已从Android 6.0中的Android SDK中删除。虽然有a workaround to continue using HttpClient in Android 6.0 with Android Studio,但你真的需要转向别的东西。那"别的"可能是:
HttpUrlConnection
或者,根据HTTP工作的性质,您可以选择支持更高阶操作的库(例如,Web服务API的Retrofit)。
在紧要关头,您可以通过在模块的useLibrary 'org.apache.http.legacy'
文件中android
关闭build.gradle
来启用旧版API。然而,谷歌多年来一直建议人们停止使用Android的内置HttpClient,因此最多这应该是一个止损移动,而你正在努力转移到另一个API。
答案 2 :(得分:23)
Main build.gradle - /build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:1.3.1'
// Versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
}
...
}
特定于模块的build.gradle - /app/build.gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
...
useLibrary 'org.apache.http.legacy'
...
}
答案 3 :(得分:2)
根据Apache网站,如果您使用Android API 23或更新版本,则需要包含Gradle依赖项:
NSRange lastDotRange = [sURL rangeOfString:@"/" options:NSBackwardsSearch];
来源: https://hc.apache.org/httpcomponents-client-4.5.x/android-port.html
答案 4 :(得分:0)
如果您要开始开发,请从方块转到OK Okttt,否则如果您需要保持以前的代码运行,那么将旧库添加到项目依赖项中:
dependencies {
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
}
答案 5 :(得分:-1)
使用此: -
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'