2015-10-06 16 views
5

私はアンドロイドスタジオを使用してサーバーにGETリクエストを行うアプリケーションを作成しています。 「org.apache.httpにアクセスすることはできませんと言ってAndroidはorg.apache.http.client.HttpClientにアクセスできない

enter image description here

:proiblemは、Android Studioはエラーで

client.execute(get); 

行をマークしていることである

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; 
     } 
    } 
} 

:私のコードはこれです.client.HttpClient "

私のgradleファイルです:

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' 

} 
+0

requestBuilderをお試しください。あなたが持っているものとは少し違いがあります。おそらく、クライアントビルダーに何か問題があるのは、RequestBuilder.buildの場合は同じ方法に影響しません。その後、http://www.baeldung.com/httpclient-custom-http-headerを実行してください:セクション4 –

答えて

-1

これは、現在HttpClientがsdk 23以降でサポートされていないためです。あなたのgradleに を追加してみてください。

これが機能しない場合は、HttpClient jarファイルをダウンロードしてライブラリに追加してください。

まだ動作しない場合は、compileSdkVersionを22以下にダウングレードする必要があります。 AndroidのSDKで

+0

まず、あなたはダウンロードしないでくださいhttpclient-androidをダウンロードする必要がありますどちらも動作しないHttpClientの原因をダウンロードします。 コンパイル群: 'org.apache.httpcomponents'、名称: 'HTTPClientの-アンドロイド' バージョン '4.3.5.1' コンパイル( 'org.apache.httpcomponents:httpmime:4.3.6'){ モジュールを除外する: 'httpclient' } –

4

のHttpClientそれ推論は、あなたがHttpURLConnection

https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client

あなたがこれを使用することができます

にコードを移行することができるため廃止されましたが、それはもうお勧めできません

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

HttpURLConnection

URL url = new URL(urlString); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.setDoInput(true); 
connection.connect(); 
関連する問題