網路訪問之Volley

2021-08-01 00:12:37 字數 3682 閱讀 7295

volley請求的請求種類:

1、stringrequest:返回結果是乙個字串:

//1.建立乙個請求

string url = "";

stringrequest stringrequest = new stringrequest(url,

new response.listener()

}, new response.errorlistener()

});//2.建立乙個請求佇列

requestqueue requestqueue = volley.newrequestqueue(getcontext());

//3.發起請求

requestqueue.add(stringrequest);

post請求:

stringrequest stringrequest =

new stringrequest(method.post,url,listener,errorlistener)

};

2、jsonrequest有兩個直接的子類,jsonobjectrequest和jsonarrayrequest。

jsonobjectrequest:返回結果是乙個jsonobject:

//1.建立乙個請求

//null 表示get請求

jsonobject jsonrequest = null;

string url = "";

jsonobjectrequest jsonobjectrequest = new jsonobjectrequest(url, jsonrequest,

new response.listener()

}, new response.errorlistener()

});//2.建立請求佇列

requestqueue requestqueue = volley.newrequestqueue(getcontext());

//3.發起請求

requestqueue.add(jsonobjectrequest);

3、jsonarrayrequest:返回結果是乙個jsonarray:

//1.建立請求

string url = "";

jsonarrayrequest jsonarrayrequest = new jsonarrayrequest(url,

new response.listener()

}, new response.errorlistener()

});//2.建立請求佇列

requestqueue requestqueue = volley.newrequestqueue(getcontext());

//3.發起請求

requestqueue.add(jsonarrayrequest);

4、imagerequest:返回結果是乙個bitmap:

int maxwidth = 0;

int maxheight = 0;

string url = "" ;

imagerequest imagerequest = new imagerequest(url,

new response.listener()

}, maxwidth, maxheight, bitmap.config.argb_8888,

new response.errorlistener()

});//2.建立請求

requestqueue requestqueue = volley.newrequestqueue(getcontext());

//發起請求

requestqueue.add(imagerequest);

argb_8888:每個畫素佔據4個位元組的大小,rgb_565:每個畫素佔據2個位元組大小。

5、自定義乙個request (fastjson + request = fastjsonrequest);

6、networkimageview 直接可以載入網路的imageview,networkimageview是乙個自定義控制,它是繼承自imageview的:

.android

.volley

.toolbox

.networkimageview

android:id="@+id/network_image_view"

android:layout_width="200dp"

android:layout_height="200dp"

/>

string url =

"";//請求佇列

requestqueue requestqueue = volley.newrequestqueue(getcontext());

//自定義的記憶體快取

imageloader.imagecache cache

=new myimagecache();

imageloader imageloader =

new imageloader(requestqueue, cache);

networkimageview.setdefaultimageresid(r.drawable.default_image); //載入中顯示的

networkimageview.seterrorimageresid(r.drawable.failed_image);//載入失敗時顯示的

networkimageview.setimageurl(url,imageloader);//目標的url位址

public

class

myimagecache

implements

imageloader.imagecache

};@override

public bitmap getbitmap(string url)

@override

public

void

putbitmap(string url, bitmap bitmap)

}

注意:

網路許可權:

android:name="android.permission.internet" />
擴充套件

1、自定義gsonrequest

public

class gsonrequestextends request

public

gsonrequest(string url, classclazz, listenerlistener,errorlistener errorlistener)

@override

protected responseparsenetworkresponse(networkresponse response) catch (unsupportedencodingexception e)

} @override

protected

void

deliverresponse(t response)

}

網路程式設計 初識Volley之Request的使用

參考自 public class volleyutils public static synchronized volleyutils newinstance context context return volleyutils public requestqueue getrequestqueue...

volley之快取 網路與重試

volley對所有的請求都有本地快取,對同一請求一般先從快取中獲取,獲取不到再從網路獲取。通常對進行 快取也是同樣的思路。為乙個thread,run 是乙個死迴圈。與網路方互動的邏輯如下 cache.entry entry mcache.get request.getcachekey if entr...

android網路開源框架volley之一

五月份的google i o 2013開發者大會上,google發布了開源的網路框架volley,聽說反應很好,因此決定花點時間研究一下。volley獲取位址 如果文中所列位址訪問不了,請自行想辦法,你該懂得 git clone volley的使用流程大致是這樣的。首先,我們拿到volley的請求佇...