Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Android VolleyÍêÈ«½âÎö(Ò»)£¬³õʶVolleyµÄ»ù±¾Ó÷¨
 
×÷Õß sinyu890807µÄ²©¿Í£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-16
  6407  次浏览      27
 

1. Volley¼ò½é

ÎÒÃÇÆ½Ê±ÔÚ¿ª·¢AndroidÓ¦ÓõÄʱºò²»¿É±ÜÃâµØ¶¼ÐèÒªÓõ½ÍøÂç¼¼Êõ£¬¶ø¶àÊýÇé¿öÏÂÓ¦ÓóÌÐò¶¼»áʹÓÃHTTPЭÒéÀ´·¢ËͺͽÓÊÕÍøÂçÊý¾Ý¡£AndroidϵͳÖÐÖ÷ÒªÌṩÁËÁ½ÖÖ·½Ê½À´½øÐÐHTTPͨÐÅ£¬HttpURLConnectionºÍHttpClient£¬¼¸ºõÔÚÈκÎÏîÄ¿µÄ´úÂëÖÐÎÒÃǶ¼ÄÜ¿´µ½ÕâÁ½¸öÀàµÄÉíÓ°£¬Ê¹ÓÃÂʷdz£¸ß¡£

²»¹ýHttpURLConnectionºÍHttpClientµÄÓ÷¨»¹ÊÇÉÔ΢ÓÐЩ¸´Ôӵģ¬Èç¹û²»½øÐÐÊʵ±·â×°µÄ»°£¬ºÜÈÝÒ׾ͻáд³ö²»ÉÙÖØ¸´´úÂë¡£ÓÚÊǺõ£¬Ò»Ð©AndroidÍøÂçͨÐÅ¿ò¼ÜÒ²¾ÍÓ¦Ô˶øÉú£¬±ÈÈç˵AsyncHttpClient£¬Ëü°ÑHTTPËùÓеÄͨÐÅϸ½ÚÈ«²¿·â×°ÔÚÁËÄÚ²¿£¬ÎÒÃÇÖ»ÐèÒª¼òµ¥µ÷Óü¸ÐдúÂë¾Í¿ÉÒÔÍê³ÉͨÐŲÙ×÷ÁË¡£ÔÙ±ÈÈçUniversal-Image-Loader£¬ËüʹµÃÔÚ½çÃæÉÏÏÔÊ¾ÍøÂçͼƬµÄ²Ù×÷±äµÃ¼«¶È¼òµ¥£¬¿ª·¢Õß²»ÓùØÐÄÈçºÎ´ÓÍøÂçÉÏ»ñȡͼƬ£¬Ò²²»ÓùØÐÄ¿ªÆôÏ̡߳¢»ØÊÕͼƬ×ÊÔ´µÈϸ½Ú£¬Universal-Image-LoaderÒѾ­°ÑÒ»Çж¼×öºÃÁË¡£

Android¿ª·¢ÍŶÓÒ²ÊÇÒâʶµ½ÁËÓбØÒª½«HTTPµÄͨÐŲÙ×÷ÔÙ½øÐмòµ¥»¯£¬ÓÚÊÇÔÚ2013ÄêGoogle I/O´ó»áÉÏÍÆ³öÁËÒ»¸öеÄÍøÂçͨÐÅ¿ò¼Ü¡ª¡ªVolley¡£Volley¿ÉÊÇ˵ÊǰÑAsyncHttpClientºÍUniversal-Image-LoaderµÄÓŵ㼯ÓÚÁËÒ»Éí£¬¼È¿ÉÒÔÏñAsyncHttpClientÒ»Ñù·Ç³£¼òµ¥µØ½øÐÐHTTPͨÐÅ£¬Ò²¿ÉÒÔÏñUniversal-Image-LoaderÒ»ÑùÇáËɼÓÔØÍøÂçÉϵÄͼƬ¡£³ýÁ˼òµ¥Ò×ÓÃÖ®Í⣬VolleyÔÚÐÔÄÜ·½ÃæÒ²½øÐÐÁË´ó·ù¶ÈµÄµ÷Õû£¬ËüµÄÉè¼ÆÄ¿±ê¾ÍÊǷdz£ÊʺÏÈ¥½øÐÐÊý¾ÝÁ¿²»´ó£¬µ«Í¨ÐÅÆµ·±µÄÍøÂç²Ù×÷£¬¶ø¶ÔÓÚ´óÊý¾ÝÁ¿µÄÍøÂç²Ù×÷£¬±ÈÈç˵ÏÂÔØÎļþµÈ£¬VolleyµÄ±íÏ־ͻá·Ç³£Ôã¸â¡£

ÏÂͼËùʾµÄÕâЩӦÓö¼ÊÇÊôÓÚÊý¾ÝÁ¿²»´ó£¬µ«ÍøÂçͨÐÅÆµ·±µÄ£¬Òò´Ë·Ç³£ÊʺÏʹÓÃVolley¡£

2. ÏÂÔØVolley

½éÉÜÁËÕâô¶àÀíÂ۵Ķ«Î÷£¬ÏÂÃæÎÒÃǾÍ×¼±¸¿ªÊ¼½øÐÐʵսÁË£¬Ê×ÏÈÐèÒª½«VolleyµÄjar°ü×¼±¸ºÃ£¬Èç¹ûÄãµÄµçÄÔÉÏ×°ÓÐGit£¬¿ÉÒÔʹÓÃÈçÏÂÃüÁîÏÂÔØVolleyµÄÔ´Â룺

git clone https://android.googlesource.com/platform/frameworks/volley

ÏÂÔØÍê³Éºó½«Ëüµ¼Èëµ½ÄãµÄEclipse¹¤³ÌÀȻºóÔÙµ¼³öÒ»¸öjar°ü¾Í¿ÉÒÔÁË¡£Èç¹ûÄãµÄµçÄÔÉÏûÓÐGit£¬ÄÇôҲ¿ÉÒÔÖ±½ÓʹÓÃÎÒµ¼³öºÃµÄjar°ü£¬ÏÂÔØµØÖ·ÊÇ£ºhttp://download.csdn.net/detail/sinyu890807/7152015 ¡£

н¨Ò»¸öAndroidÏîÄ¿£¬½«volley.jarÎļþ¸´ÖƵ½libsĿ¼Ï£¬ÕâÑù×¼±¸¹¤×÷¾ÍËãÊÇ×öºÃÁË¡£

3. StringRequestµÄÓ÷¨

Ç°ÃæÒѾ­Ëµ¹ý£¬VolleyµÄÓ÷¨·Ç³£¼òµ¥£¬ÄÇôÎÒÃǾʹÓ×î»ù±¾µÄHTTPͨÐÅ¿ªÊ¼Ñ§Ï°°É£¬¼´·¢ÆðÒ»ÌõHTTPÇëÇó£¬È»ºó½ÓÊÕHTTPÏìÓ¦¡£Ê×ÏÈÐèÒª»ñÈ¡µ½Ò»¸öRequestQueue¶ÔÏ󣬿ÉÒÔµ÷ÓÃÈçÏ·½·¨»ñÈ¡µ½£º

RequestQueue mQueue = Volley.newRequestQueue(context);

×¢ÒâÕâÀïÄõ½µÄRequestQueueÊÇÒ»¸öÇëÇó¶ÓÁжÔÏó£¬Ëü¿ÉÒÔ»º´æËùÓеÄHTTPÇëÇó£¬È»ºó°´ÕÕÒ»¶¨µÄËã·¨²¢·¢µØ·¢³öÕâЩÇëÇó¡£RequestQueueÄÚ²¿µÄÉè¼Æ¾ÍÊǷdz£ºÏÊʸ߲¢·¢µÄ£¬Òò´ËÎÒÃDz»±ØÎªÃ¿Ò»´ÎHTTPÇëÇó¶¼´´½¨Ò»¸öRequestQueue¶ÔÏó£¬ÕâÊǷdz£ÀË·Ñ×ÊÔ´µÄ£¬»ù±¾ÉÏÔÚÿһ¸öÐèÒªºÍÍøÂç½»»¥µÄActivityÖд´½¨Ò»¸öRequestQueue¶ÔÏó¾Í×ã¹»ÁË¡£

½ÓÏÂÀ´ÎªÁËÒª·¢³öÒ»ÌõHTTPÇëÇó£¬ÎÒÃÇ»¹ÐèÒª´´½¨Ò»¸öStringRequest¶ÔÏó£¬ÈçÏÂËùʾ£º

StringRequest stringRequest = new StringRequest("http://www.baidu.com",  
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});

¿ÉÒÔ¿´µ½£¬ÕâÀïnew³öÁËÒ»¸öStringRequest¶ÔÏó£¬StringRequestµÄ¹¹Ô캯ÊýÐèÒª´«ÈëÈý¸ö²ÎÊý£¬µÚÒ»¸ö²ÎÊý¾ÍÊÇÄ¿±ê·þÎñÆ÷µÄURLµØÖ·£¬µÚ¶þ¸ö²ÎÊýÊÇ·þÎñÆ÷ÏìÓ¦³É¹¦µÄ»Øµ÷£¬µÚÈý¸ö²ÎÊýÊÇ·þÎñÆ÷ÏìӦʧ°ÜµÄ»Øµ÷¡£ÆäÖУ¬Ä¿±ê·þÎñÆ÷µØÖ·ÎÒÃÇÌîдµÄÊǰٶȵÄÊ×Ò³£¬È»ºóÔÚÏìÓ¦³É¹¦µÄ»Øµ÷Àï´òÓ¡³ö·þÎñÆ÷·µ»ØµÄÄÚÈÝ£¬ÔÚÏìӦʧ°ÜµÄ»Øµ÷Àï´òÓ¡³öʧ°ÜµÄÏêϸÐÅÏ¢¡£

×îºó£¬½«Õâ¸öStringRequest¶ÔÏóÌí¼Óµ½RequestQueueÀïÃæ¾Í¿ÉÒÔÁË£¬ÈçÏÂËùʾ£º

mQueue.add(stringRequest); 

ÁíÍ⣬ÓÉÓÚVolleyÊÇÒª·ÃÎÊÍøÂçµÄ£¬Òò´Ë²»ÒªÍü¼ÇÔÚÄãµÄAndroidManifest.xmlÖÐÌí¼ÓÈçÏÂȨÏÞ£º

<uses-permission android:name="android.permission.INTERNET" /> 

ºÃÁË£¬¾ÍÊÇÕâô¼òµ¥£¬Èç¹ûÄãÏÖÔÚÔËÐÐһϳÌÐò£¬²¢·¢³öÕâÑùÒ»ÌõHTTPÇëÇ󣬾ͻῴµ½LogCatÖлá´òÓ¡³öÈçÏÂͼËùʾµÄÊý¾Ý¡£

û´í£¬°Ù¶È·µ»Ø¸øÎÒÃǵľÍÊÇÕâÑùÒ»³¤´®µÄHTML´úÂ룬ËäÈ»ÎÒÃÇ¿´ÆðÀ´»áÓÐЩ³ÔÁ¦£¬µ«ÊÇä¯ÀÀÆ÷È´¿ÉÒÔÇáËɵضÔÕâ¶ÎHTML´úÂë½øÐнâÎö£¬È»ºó½«°Ù¶ÈµÄÊ×Ò³Õ¹ÏÖ³öÀ´¡£

ÕâÑùµÄ»°£¬Ò»¸ö×î»ù±¾µÄHTTP·¢ËÍÓëÏìÓ¦µÄ¹¦ÄܾÍÍê³ÉÁË¡£Äã»á·¢ÏÖ¸ù±¾»¹Ã»Ð´¼¸ÐдúÂë¾ÍÇáÒ×ʵÏÖÁËÕâ¸ö¹¦ÄÜ£¬Ö÷Òª¾ÍÊǽøÐÐÁËÒÔÏÂÈý²½²Ù×÷£º

1. ´´½¨Ò»¸öRequestQueue¶ÔÏó¡£

2. ´´½¨Ò»¸öStringRequest¶ÔÏó¡£

3. ½«StringRequest¶ÔÏóÌí¼Óµ½RequestQueueÀïÃæ¡£

²»¹ý´ó¼Ò¶¼ÖªµÀ£¬HTTPµÄÇëÇóÀàÐÍͨ³£ÓÐÁ½ÖÖ£¬GETºÍPOST£¬¸Õ²ÅÎÒÃÇʹÓõÄÃ÷ÏÔÊÇÒ»¸öGETÇëÇó£¬ÄÇôÈç¹ûÏëÒª·¢³öÒ»ÌõPOSTÇëÇóÓ¦¸ÃÔõô×öÄØ£¿StringRequestÖл¹ÌṩÁËÁíÍâÒ»ÖÖËĸö²ÎÊýµÄ¹¹Ô캯Êý£¬ÆäÖеÚÒ»¸ö²ÎÊý¾ÍÊÇÖ¸¶¨ÇëÇóÀàÐ͵ģ¬ÎÒÃÇ¿ÉÒÔʹÓÃÈçÏ·½Ê½½øÐÐÖ¸¶¨£º

StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener); 

¿ÉÊÇÕâÖ»ÊÇÖ¸¶¨ÁËHTTPÇëÇó·½Ê½ÊÇPOST£¬ÄÇôÎÒÃÇÒªÌá½»¸ø·þÎñÆ÷µÄ²ÎÊýÓÖ¸ÃÔõôÉèÖÃÄØ£¿ºÜÒź¶£¬StringRequestÖв¢Ã»ÓÐÌṩÉèÖÃPOST²ÎÊýµÄ·½·¨£¬µ«Êǵ±·¢³öPOSTÇëÇóµÄʱºò£¬Volley»á³¢ÊÔµ÷ÓÃStringRequestµÄ¸¸Àࡪ¡ªRequestÖеÄgetParams()·½·¨À´»ñÈ¡POST²ÎÊý£¬ÄÇô½â¾ö·½·¨×ÔȻҲ¾ÍÓÐÁË£¬ÎÒÃÇÖ»ÐèÒªÔÚStringRequestµÄÄäÃûÀàÖÐÖØÐ´getParams()·½·¨£¬ÔÚÕâÀïÉèÖÃPOST²ÎÊý¾Í¿ÉÒÔÁË£¬´úÂëÈçÏÂËùʾ£º

StringRequest stringRequest = new StringRequest(Method.POST, url,  listener, errorListener) {  
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
map.put("params1", "value1");
map.put("params2", "value2");
return map;
}
};

 

Äã¿ÉÄÜ»á˵£¬Ã¿´Î¶¼ÕâÑùÓÃÆðÀ´Æñ²»ÊǺÜÀÛ£¿Á¬¸öÉèÖÃPOST²ÎÊýµÄ·½·¨¶¼Ã»ÓС£µ«ÊDz»ÒªÍü¼Ç£¬VolleyÊÇ¿ªÔ´µÄ£¬Ö»ÒªÄãÔ¸Ò⣬Äã¿ÉÒÔ×ÔÓɵØÔÚÀïÃæÌí¼ÓºÍÐÞ¸ÄÈκεķ½·¨£¬ÇáËɾÍÄܶ¨ÖƳöÒ»¸öÊôÓÚÄã×Ô¼ºµÄVolley°æ±¾¡£

4. JsonRequestµÄÓ÷¨

ѧÍêÁË×î»ù±¾µÄStringRequestµÄÓ÷¨£¬ÎÒÃÇÔÙÀ´½ø½×ѧϰһÏÂJsonRequestµÄÓ÷¨¡£ÀàËÆÓÚStringRequest£¬JsonRequestÒ²ÊǼ̳Ð×ÔRequestÀàµÄ£¬²»¹ýÓÉÓÚJsonRequestÊÇÒ»¸ö³éÏóÀ࣬Òò´ËÎÒÃÇÎÞ·¨Ö±½Ó´´½¨ËüµÄʵÀý£¬ÄÇôֻÄÜ´ÓËüµÄ×ÓÀàÈëÊÖÁË¡£JsonRequestÓÐÁ½¸öÖ±½ÓµÄ×ÓÀ࣬JsonObjectRequestºÍJsonArrayRequest£¬´ÓÃû×ÖÉÏÄãÓ¦¸ÃÄܾͿ´³öËüÃǵÄÇø±ðÁ˰ɣ¿Ò»¸öÊÇÓÃÓÚÇëÇóÒ»¶ÎJSONÊý¾ÝµÄ£¬Ò»¸öÊÇÓÃÓÚÇëÇóÒ»¶ÎJSONÊý×éµÄ¡£

ÖÁÓÚËüÃǵÄÓ÷¨Ò²»ù±¾ÉÏûÓÐÊ²Ã´ÌØÊâÖ®´¦£¬ÏÈnew³öÒ»¸öJsonObjectRequest¶ÔÏó£¬ÈçÏÂËùʾ£º

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://m.weather.com.cn/data/101010100.html", null,  
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});

¿ÉÒÔ¿´µ½£¬ÕâÀïÎÒÃÇÌîдµÄURLµØÖ·ÊÇhttp://m.weather.com.cn/data/101010100.html£¬ÕâÊÇÖйúÌìÆøÍøÌṩµÄÒ»¸ö²éѯÌìÆøÐÅÏ¢µÄ½Ó¿Ú£¬ÏìÓ¦µÄÊý¾Ý¾ÍÊÇÒÔJSON¸ñʽ·µ»ØµÄ£¬È»ºóÎÒÃÇÔÚonResponse()·½·¨Öн«·µ»ØµÄÊý¾Ý´òÓ¡³öÀ´¡£

×îºóÔÙ½«Õâ¸öJsonObjectRequest¶ÔÏóÌí¼Óµ½RequestQueueÀï¾Í¿ÉÒÔÁË£¬ÈçÏÂËùʾ£º

mQueue.add(jsonObjectRequest);  

ÕâÑùµ±HTTPͨÐÅÍê³ÉÖ®ºó£¬·þÎñÆ÷ÏìÓ¦µÄÌìÆøÐÅÏ¢¾Í»á»Øµ÷µ½onResponse()·½·¨ÖУ¬²¢´òÓ¡³öÀ´¡£ÏÖÔÚÔËÐÐһϳÌÐò£¬·¢³öÕâÑùÒ»ÌõHTTPÇëÇ󣬾ͻῴµ½LogCatÖлá´òÓ¡³öÈçÏÂͼËùʾµÄÊý¾Ý¡£

ÓÉ´Ë¿ÉÒÔ¿´³ö£¬·þÎñÆ÷·µ»Ø¸øÎÒÃǵÄÊý¾ÝȷʵÊÇJSON¸ñʽµÄ£¬²¢ÇÒonResponse()·½·¨ÖÐЯ´øµÄ²ÎÊýÒ²ÕýÊÇÒ»¸öJSONObject¶ÔÏó£¬Ö®ºóÖ»ÐèÒª´ÓJSONObject¶ÔÏóÈ¡³öÎÒÃÇÏëÒªµÃµ½µÄÄDz¿·ÖÊý¾Ý¾Í¿ÉÒÔÁË¡£

ÄãÓ¦¸Ã·¢ÏÖÁ˰ɣ¬JsonObjectRequestµÄÓ÷¨ºÍStringRequestµÄÓ÷¨»ù±¾ÉÏÊÇÍêȫһÑùµÄ£¬VolleyµÄÒ×ÓÃÖ®´¦Ò²ÔÚÕâÀïÌåÏÖ³öÀ´ÁË£¬»áÁËÒ»Ö־ͿÉÒÔÈÃÄã¾ÙÒ»·´Èý£¬Òò´Ë¹ØÓÚJsonArrayRequestµÄÓ÷¨ÏàÐÅÒѾ­²»ÐèÒªÎÒÔÙÈ¥½²½âÁ˰ɡ£

   
6407 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ


Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ


ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ