HTTP Get в Android Studio API уровня 23+ - PullRequest
0 голосов
/ 12 июня 2018

Привет! Я искал в Интернете, как создать приложение Http Get в Android Studio, и обнаружил, что вы можете добавить

compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.5'

кзависимости для Android API уровня 23>.Или

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

для Android API уровня 23+. А потом я получаю код Java

HttpClient httpClient= HttpClientBuilder.create().build();
HttpGet request= new HttpGet(your_url_to_read);
request.setHeader("k1", "value1");
request.setHeader("k2", "value2");
HttpResponse response= httpClient.execute(request);

System.out.println("Response Code : "+ response.getStatusLine().getStatusCode());
response.getStatusLine().getStatusCode());
//want to read the response content?
BufferedReader rd = new BufferedReader(
        new InputStreamReader(response.getEntity().getContent()));

StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
    result.append(line);
}

от @ user404.Я успешно импортировал другие пакеты в код Java ниже, но в строке 1 Android Studio не может импортировать HttpClientBuilder.Затем я рассказал о HttpClientBuilder на уровне API Android 23+ (который я забыл, где это было, но это было где-то в StackOverflow) там кто-то говорил, что вы не можете импортировать HttpClietBuilder в API Android 23+ потому что Google удалил эту функцию.

Так что теперь я ищу либо способ импорта этого пакета HttpClientBuilder без понижения уровня API , либо совершенно новый способ сделать запрос Get Http.в Java с заголовками, такими как "URL" http://www.something.com/random" HEADERS "Авторизация": "123456ABCDEF" ", а не параметрами в URL, такими как" http://www.something.com/random?authorization=123456ABCDEF".

Заранее спасибо за ответ

1 Ответ

0 голосов
/ 19 июня 2018

Просто пакеты org.apache.http были удалены по умолчанию, поэтому, если вы нацелены на уровень API 23, вам нужно будет сделать что-то дополнительное, чтобы заставить их работать.

Добавление useLibrary 'org.apache.http.legacy'для Gradle это способ исправить это, и вы сможете нацелиться на 23. Однако вы получите старую реализацию, унаследованную по определенной причине.

Вручную добавьте последнюю версию Apache HttpClient какзависимость является хорошим выбором и будет продолжать работать независимо от того, на какую версию Android вы нацелены.

Аналогично, вы можете использовать другую библиотеку HTTP, например OkHttp.Вы также можете использовать библиотеку более высокого уровня, например Retrofit.

...