[android] HttpClient는 Android Studio에서 가져 오지 않습니다.

Android Studio로 작성된 간단한 수업이 있습니다.

package com.mysite.myapp;

import org.apache.http.client.HttpClient;

public class Whatever {
    public void headBangingAgainstTheWallExample () {
        HttpClient client = new DefaultHttpClient();
    }
}

이로부터 다음과 같은 컴파일 시간 오류가 발생합니다.

Cannot resolve symbol HttpClient

HttpClientAndroid Studio SDK에 포함되어 있지 않습니까? 그렇지 않더라도 Gradle 빌드에 다음과 같이 추가했습니다.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.0'
    compile 'org.apache.httpcomponents:httpclient:4.5'
}

마지막 컴파일 라인 유무에 관계없이 오류는 동일합니다. 내가 무엇을 놓치고 있습니까?



답변

HttpClientSDK 23에서 더 이상 지원되지 않습니다. URLConnectionSDK 22 를 사용 하거나 다운 그레이드해야합니다 (compile 'com.android.support:appcompat-v7:22.2.0' )

SDK 23이 필요하면 이것을 gradle에 추가하십시오.

android {
    useLibrary 'org.apache.http.legacy'
}

HttpClient jar을 프로젝트에 직접 다운로드하여 포함 시키거나 OkHttp를 대신 사용할 수도 있습니다.


답변

HttpClient는 API 레벨 22에서 더 이상 사용되지 않고 API 레벨 23에서 제거되었습니다. 필요한 경우 API 레벨 23 이상에서 계속 사용할 수 있지만 지원되는 메소드로 이동하여 HTTP를 처리하는 것이 가장 좋습니다. 따라서 23으로 컴파일하는 경우 build.gradle에 이것을 추가하십시오.

android {
    useLibrary 'org.apache.http.legacy'
}


답변

아래 링크에서 TejaDroid의 답변이 도움이되었습니다. Android Studio에서 org.apache.http.HttpResponse를 가져올 수 없습니다

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'
    ...
}


답변

SDK 레벨 23에 Apache HTTP를 사용하려면 다음을 수행하십시오.

최상위 build.gradle-/build.gradle

buildscript {
    ...
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        // Lowest version for useLibrary is 1.3.0
        // Android Studio will notify you about the latest stable version
        // See all versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
    }
    ...
}

gradle 업데이트에 대한 Android Studio의 알림 :

Gradle 업데이트에 대한 Android Studio의 알림

모듈 별 build.gradle-/app/build.gradle

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"
    ...
    useLibrary 'org.apache.http.legacy'
    ...
}


답변

이것을 시도해보십시오. build.gradle 파일 에이 종속성을 추가하십시오

compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'


답변

1-Apache jar 파일 (이 답변 기준) 4.5.zip 파일 :
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F

2- zip 파일을 열어 jar 파일을 libs 폴더에 복사하십시오. 프로젝트 상단으로 이동하면 “Android”라고 표시되며, 클릭하면 목록이 표시됩니다. 그래서,

안드로이드-> 프로젝트-> 앱-> libs

그런 다음 항아리를 넣으십시오.

3- build.gradle (모듈 : 앱) 추가

compile fileTree(dir: 'libs', include: ['*.jar'])

 dependency {
   }

4- Java 클래스에서 다음 가져 오기를 추가하십시오.

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;

import org.apache.http.params.CoreProtocolPNames;


답변

SDK 23에서는 HttpClient가 더 이상 지원되지 않습니다. Android 6.0 (API 레벨 23) 릴리스는 Apache HTTP 클라이언트에 대한 지원을 제거합니다. 당신은 사용해야합니다

android {
    useLibrary 'org.apache.http.legacy'
    .
    .
    .

또한 종속성에 아래 코드 스 니펫을 추가하십시오.

// 웹 서비스를위한 http 최종 솔루션 (파일 업로드 포함)

compile('org.apache.httpcomponents:httpmime:4.3.6') {
        exclude module: 'httpclient'
}
 compile 'org.apache.httpcomponents:httpclient-android:4.3.5'

당신이 사용 사용하는 동안 그것은 또한 당신을 도울 것입니다 MultipartEntity를 위한 파일 업로드 .