无法在Android Studio中导入org.apache.http.HttpResponse

Moh*_*ees 30 eclipse android android-studio

我想在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;
Run Code Online (Sandbox Code Playgroud)

我正在关注导师使用Eclipse的视频教程,所以我知道它有效.

但是我需要添加哪些额外的东西/库才能使用Android Studio?

Tej*_*oid 63

HttpClient在sdk 23中已弃用.

您必须将URLConnection或sdk向下移动到22

你还需要更新gradle sdk 23的HttpClient

您必须在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'
    ...
}
Run Code Online (Sandbox Code Playgroud)


Com*_*are 40

HttpClient在Android 5.1中已弃用,已从Android 6.0中的Android SDK中删除.虽然有一种解决方法可以在Android 6.0中使用Android Studio继续使用HttpClient,但您确实需要转向其他内容.那"其他东西"可能是:

或者,根据HTTP工作的性质,您可以选择支持高阶操作的库(例如,Web服务API的Retrofit).

在紧要关头,您可以通过在模块文件useLibrary 'org.apache.http.legacy'中的android闭包中启用旧版API build.gradle.然而,谷歌多年来一直建议人们停止使用Android的内置HttpClient,因此最多这应该是一个止损移动,而你的工作是更永久地转移到另一个API.


小智 23

主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/
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

特定于模块的build.gradle - /app/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    ...
    useLibrary 'org.apache.http.legacy'
    ...
}
Run Code Online (Sandbox Code Playgroud)