NetroidAndroid Http庫(kù)
Netroid是一個(gè)基于 Volley 實(shí)現(xiàn)的Android Http庫(kù)。提供執(zhí)行網(wǎng)絡(luò)請(qǐng)求、緩存返回結(jié)果、批量圖片加載、大文件斷點(diǎn)下載的常見Http交互功能。致力于避免每個(gè)項(xiàng)目重復(fù)開發(fā)基礎(chǔ)Http功能,實(shí)現(xiàn)顯著地縮短開發(fā)周期的愿景。
實(shí)現(xiàn)原理:
Netroid自啟動(dòng)后創(chuàng)建由開發(fā)者指定的線程數(shù)目,每個(gè)線程由 BlockingQueue 進(jìn)行阻塞。當(dāng)有新的請(qǐng)求進(jìn)入隊(duì)列時(shí),其中一個(gè)線程將被喚醒并獲得請(qǐng)求對(duì)象, 然后開始執(zhí)行,執(zhí)行完成后線程重新回到阻塞狀態(tài),等待下一次喚醒。Netroid實(shí)現(xiàn)了強(qiáng)大的狀態(tài)回調(diào)接口在請(qǐng)求執(zhí)行過(guò)程中進(jìn)行通知, 包括開始、完成、成功、重試、失敗、取消、執(zhí)行網(wǎng)絡(luò)操作、應(yīng)用緩存、下載進(jìn)度九種狀態(tài)回調(diào),開發(fā)者可方便地獲取請(qǐng)求的執(zhí)行情況,對(duì)用戶進(jìn)行友好提醒。
示例代碼:
String url = "http://server.domain/string.do";
StringRequest request = new StringRequest(Request.Method.GET, url, new Listener<String>() {
@Override
public void onSuccess(String response) {
Toast.makeText(Activity.this, "response : " + response, 2000).show();
}
@Override
public void onError(NetroidError error) {
Toast.makeText(Activity.this, "error occurred : " + error.getMessage(), 2000).show();
}
});
// 設(shè)置請(qǐng)求Header
request.addHeader("Accept-Encoding", "gzip, deflate");
RequestQueue.add(request);評(píng)論
圖片
表情
