1. 程式人生 > >OkHttp面試之--使用OkHttp非同步請求網路資料

OkHttp面試之--使用OkHttp非同步請求網路資料

對於OkHttp的使用,就不多廢話了,直接上程式碼

新增依賴,build.gradle檔案中新增如下依賴

compile 'com.squareup.okhttp3:okhttp:3.2.0'

接下來在Activity中新增如下程式碼

//首先建立一個Handler
private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                    imageView.setImageBitmap((Bitmap) msg.obj);
                    break
; } } }; //然後使用OkHttp傳送網路請求,並將結果通過Handler傳送到主執行緒 public void sendRequestByOkHttp() { //建立Request物件,並傳入請求地址 Request request = new Request.Builder().url( "http://tnfs.tngou.net/img/ext/160321/e57d5816cb72d7486aa6dbf19a7d0c6c.jpg").build(); //構造Call物件--其實是AsyncCall物件 Call call = client.newCall(request); //呼叫Call.enqueue方法進行非同步請求
call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { //網路請求失敗 Log.d("lenve", "onFailure: " + e.getMessage()); } @Override public void onResponse(Call call, Response response) throws
IOException { //網路請求成功,將請求的圖片資訊顯示的ImageView控制元件上 Bitmap bitmap = BitmapFactory.decodeStream( response.body().byteStream()); Message msg = mHandler.obtainMessage(); msg.what = 1; msg.obj = bitmap; mHandler.sendMessage(msg); } }); }

使用很簡單,就不作過多的解釋了。有不明白的私聊