Reputation: 5080
I have tried to add various dependencies of Apache commons libs
.
I have tried httpClient
, httpCore
and many different versions. Also from external jar and also from maven suggestions.
I ended up with this in my gradle
:
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.3.5'
It still gives me Cannot resolve HttpClient
and Cannot resolve HttpPost
etc.
It doesn't offer me to import the classes.
Code for doing HTTP post:
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://fdsgsfdgs);
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<>(2);
nameValuePairs.add(new BasicNameValuePair("id", null));
nameValuePairs.add(new BasicNameValuePair("name", "TestFromAppSpell"));
nameValuePairs.add(new BasicNameValuePair("damage", "12345"));
nameValuePairs.add(new BasicNameValuePair("heal", "50"));
nameValuePairs.add(new BasicNameValuePair("description", "Testtestest"));
nameValuePairs.add(new BasicNameValuePair("coordinates", coordinates));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
System.out.println("Http post done!");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
Gradle file:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
apply plugin: 'com.android.application'
repositories {
jcenter()
}
dependencies {
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:gridlayout-v7:23.0.0'
compile 'com.android.support:cardview-v7:23.0.0'
compile 'org.apache.httpcomponents:httpcore:4.4.1'
compile 'org.apache.httpcomponents:httpclient:4.3.5'
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
// The sample build uses multiple directories to
// keep boilerplate and common code separate from
// the main sample code.
List<String> dirs = [
'main', // main sample code; look here for the interesting stuff.
'common', // components that are reused by multiple samples
'template'] // boilerplate code that is generated by the sample template process
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 23
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
dirs.each { dir ->
java.srcDirs "src/${dir}/java"
res.srcDirs "src/${dir}/res"
}
}
androidTest.setRoot('tests')
androidTest.java.srcDirs = ['tests/src']
}
}
Upvotes: 3
Views: 18718
Reputation: 151
HttpClient
is not supported any more in SDK 23. You have to use URLConnection
or downgrade to SDK 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)
If you need SDK 23, add this to your gradle:
android {
useLibrary 'org.apache.http.legacy'
}
Upvotes: 7
Reputation: 5080
I just had to add this at the end of my build.gradle
file.
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
}
Upvotes: 0