Volley 簡(jiǎn)單使用

  • 首先呢肯定是導(dǎo)入依賴:

      compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
    
  • 導(dǎo)入依賴之后呢:

      //首先得到一個(gè)RequestQueue   顧名思義也就是請(qǐng)求隊(duì)列
      RequestQueue queue = Volley.newRequestQueue(this);
    
      //然后創(chuàng)建請(qǐng)求
      StringRequest request = new StringRequest("http://www.baidu.com", new Response.Listener<String>() {
          @Override
          public void onResponse(String response) {
              Log.d("MainActivity這就是咱們得到的值", response);
          }
      }, new Response.ErrorListener() {
          @Override
          public void onErrorResponse(VolleyError error) {
    
          }
      });
      //給請(qǐng)求隊(duì)列添加請(qǐng)求
      queue.add(request);
    

    這只是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)請(qǐng)求Volley成的好處就是直接把返回的數(shù)據(jù)轉(zhuǎn)換成String類型的有人就問了只能轉(zhuǎn)換成String? 才不是呢!接著往下看:
    ImageRequest request1 = new ImageRequest("你圖片的url", new Response.Listener<Bitmap>() {
    @Override
    public void onResponse(Bitmap response) {
    imageView.setImageBitmap(response);
    }
    }, 100, 100, Bitmap.Config.ARGB_8888, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

          }
      });
      queue.add(request1);
    

有人也許就說了這么多的構(gòu)造參數(shù)我哪知道什么意思!
別急我慢慢給你講:
1.第一個(gè)是你圖片的url
2.第二個(gè)是你請(qǐng)求成功的回調(diào)
3.第三個(gè)是圖片規(guī)定最大的寬度
4.第四個(gè)是你要使用哪種位圖格式來解碼
5.第五個(gè)就是請(qǐng)求失敗的回調(diào)

  • 當(dāng)然你也可以自定義Request,這里就貼一個(gè)j簡(jiǎn)單的 GsonRequest的代碼:
public class GsonRequest extends Request<Object> {
    private final Response.Listener<Object> mListener;
    Object ob;
    public GsonRequest(int method, String url, Response.Listener<Object> listener,
                       Response.ErrorListener errorListener,Object ob) {
        super(method, url, errorListener);
        mListener = listener;
        this.ob = ob;
    }

    public GsonRequest(String url, Response.Listener<Object> listener, Response.ErrorListener errorListener,Object ob) {
        this(Method.GET, url, listener, errorListener,ob);
    }

    @Override
    protected void deliverResponse(Object response) {
        mListener.onResponse(response);
    }

    @Override
    protected Response<Object> parseNetworkResponse(NetworkResponse response) {
        String parsed;
        try {
            parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
        } catch (UnsupportedEncodingException e) {
            parsed = new String(response.data);
        }
        Gson g = new Gson();
        Object obj  = (Object) g.fromJson(parsed,ob.getClass());
        return Response.success(obj, HttpHeaderParser.parseCacheHeaders(response));
    }
}

記得加上網(wǎng)絡(luò)權(quán)限 :
<uses-permission android:name="android.permission.INTERNET" />

基本用法就這樣了。sky

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容