簡體   English   中英

HTTP獲取Android Studio API級別23+

[英]HTTP Get in Android Studio API level 23+

嗨! 我一直在互聯網上搜索如何在Android Studio中制作Http Get應用,我發現您可以添加

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。 然后,我進入了一個關於Android API級別23+中的HttpClientBuilder的線程(我忘記了它的位置,但是它位於StackOverflow上的某個地方) ,有人說您無法在Android API 23+中導入HttpClietBuilder,因為Google刪除了該功能。

因此,現在我正在尋找一種在不降低API級別的情況下導入該HttpClientBuilder包的方法,或者一種全新的方式來在Java中通過標頭(例如“ URL” http://www.something.com/)發出Http Get請求。隨機 “磁頭‘授權’:‘123456ABCDEF’”,而不是在URL參數,如“ http://www.something.com/random?authorization=123456ABCDEF ”。

正手感謝您的回答

只是默認情況下已刪除org.apache.http軟件包,因此,如果您以API級別23為目標,則需要做一些額外的事情才能使這些工作。

在您的Gradle中添加useLibrary 'org.apache.http.legacy'是解決此問題的一種方法,您將可以定位到23。但是,您將獲得舊的實現,這是有原因的。

手動添加最新版本的Apache HttpClient作為依賴項是一個不錯的選擇,無論您要定位的是哪個Android版本,它都可以繼續工作。

同樣,您可以一起使用另一個HTTP庫,例如OkHttp。 您也可以使用更高級別的庫,例如Retrofit。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM