Android網(wǎng)絡(luò)技術(shù)HttpURLConnection詳解
介紹
早些時(shí)候,Android 上發(fā)送 HTTP 請求一般有 2 種方式:HttpURLConnection 和 HttpClient。不過由于 HttpClient 存在 API 數(shù)量過多、擴(kuò)展困難等缺點(diǎn),Android 團(tuán)隊(duì)越來越不建議我們使用這種方式。在 Android 6.0 系統(tǒng)中,HttpClient 的功能被完全移除了。因此,在這里我們只簡單介紹HttpURLConnection 的使用。
代碼 (核心部分,目前只演示 GET 請求):
1. Manifest.xml 中添加網(wǎng)絡(luò)權(quán)限:<uses-permission android:name="android.permission.INTERNET">
2. 在子線程中發(fā)起網(wǎng)絡(luò)請求:
new Thread(new Runnable() {
@Override
public void run() {
doRequest();
}
}).start();
//發(fā)起網(wǎng)絡(luò)請求
private void doRequest() {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
//1.獲取 HttpURLConnection 實(shí)例.注意要用 https 才能獲取到結(jié)果!
URL url = new URL("https://www.baidu.com");
connection = (HttpURLConnection) url.openConnection();
//2.設(shè)置 HTTP 請求方式
connection.setRequestMethod("GET");
//3.設(shè)置連接超時(shí)和讀取超時(shí)的毫秒數(shù)
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
//4.獲取服務(wù)器返回的輸入流
InputStream inputStream = connection.getInputStream();
//5.對獲取的輸入流進(jìn)行讀取
reader = new BufferedReader(new InputStreamReader(inputStream));
final StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
//然后處理讀取到的信息 response。返回的結(jié)果是 HTML 代碼,字符非常多。
runOnUiThread(new Runnable() {
@Override
public void run() {
tvResponse.setText(response.toString());
}
});
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (connection != null) {
connection.disconnect();
}
}
}
效果圖:

源碼下載地址:HttpURLConnection
本例子參照《第一行代碼 Android 第 2 版》
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android HttpURLConnection下載網(wǎng)絡(luò)圖片設(shè)置系統(tǒng)壁紙
- Android 用HttpURLConnection訪問網(wǎng)絡(luò)的方法
- Android基于HttpUrlConnection類的文件下載實(shí)例代碼
- Android程序開發(fā)通過HttpURLConnection上傳文件到服務(wù)器
- Android 中HttpURLConnection與HttpClient使用的簡單實(shí)例
- Android HttpURLConnection.getResponseCode()錯(cuò)誤解決方法
- Android使用HttpURLConnection實(shí)現(xiàn)網(wǎng)絡(luò)訪問流程
相關(guān)文章
native.js獲取手機(jī)硬件基本信息實(shí)例代碼android版
本文為大家分享了native.js獲取手機(jī)硬件基本信息實(shí)例代碼android版包括手機(jī)MAC地址,手機(jī)內(nèi)存大小,手機(jī)存儲空間大小,手機(jī)CPU信息等手機(jī)硬件基本信息2018-09-09
Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式
這篇文章主要介紹了Android中activity處理返回結(jié)果的實(shí)現(xiàn)方式,為了實(shí)現(xiàn)這個(gè)功能,Android提供了一個(gè)機(jī)制,跳轉(zhuǎn)到其他activity時(shí),再返回,可以接受到其他activity返回的值,無需再start新的當(dāng)前activity。需要的朋友可以參考下2016-12-12
Android開發(fā)Input系統(tǒng)觸摸事件分發(fā)
這篇文章主要為大家介紹了Android開發(fā)Input系統(tǒng)觸摸事件分發(fā)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
Android應(yīng)用開發(fā)中Fragment的靜態(tài)加載與動(dòng)態(tài)加載實(shí)例
這篇文章主要介紹了Android應(yīng)用開發(fā)中Fragment的靜態(tài)加載與動(dòng)態(tài)加載實(shí)例,例子中包括動(dòng)態(tài)的添加更新以及刪除Fragment等操作,很有借鑒意義,需要的朋友可以參考下2016-02-02
Android實(shí)現(xiàn)從本地圖庫/相機(jī)拍照后裁剪圖片并設(shè)置頭像
玩qq或者是微信的盆友都知道,這些聊天工具里都要設(shè)置頭像,一般情況下大家的解決辦法是從本地圖庫選擇圖片或是從相機(jī)拍照,然后根據(jù)自己的喜愛截取圖片,接下來通過本文給大家介紹Android實(shí)現(xiàn)從本地圖庫/相機(jī)拍照后裁剪圖片并設(shè)置頭像,需要的朋友參考下2016-02-02
Android自定義加載loading view動(dòng)畫組件
這篇文章主要為大家詳細(xì)介紹了Android自定義加載loading view動(dòng)畫組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08

