I'm using android studio to create an app that makes a GET request to a server. My code is this:
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGetHC4;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
public class HTTPHelper
{
private String base;
public HTTPHelper (String base)
{
this.base = base;
}
public String doGet (String path)
{
try
{
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpGetHC4 get = new HttpGetHC4(path);
CloseableHttpResponse response = client.execute(get);
return "";
}
catch (Exception e)
{
return null;
}
}
}
The problem is that Android Studio marks the line
client.execute(get);
with an error:
saying "Cannot access org.apache.http.client.HttpClient"
Here's my gradle file:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "principal.halloween"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.pubnub:pubnub-android:3.7.5'
compile 'com.google.code.gson:gson:2.3.1'
compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1'
compile 'org.apache.httpcomponents:httpclient:4.3.6'
}
This is because HttpClient is not supported in sdk 23 onwards now. Try adding this in your gradle.
if that doesn't works, just download HttpClient jar file and add to your library.
If still it is not working, you have to downgrade your compileSdkVersion to 22 or lower.
In Android SDK 23
HttpClient is deprecated because it inference, you can migrate your code in
HttpURLConnection
https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client
You can use this, but it's not recommended anymore
For the
HttpURLConnection