Android网络传输框架的核心代码量对比

来源:互联网 发布:she候鸟 知乎 编辑:程序博客网 时间:2024/06/06 23:50

1. HttpURLConnection

int nStartPos = 0;int timeout = 15000;int NUMLIMIT_FAIL=5;long nEndPos = 30000000;byte[] b = new byte[blockSize];  URL url;String linkString="http://XXXXXX";try {   url = new URL(linkString);   HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();   httpConnection.setConnectTimeout(timeout);   httpConnection.setReadTimeout(timeout);   httpConnection.setRequestMethod(isDownload==1?"GET":"POST");   String sProperty = "bytes="  + nStartPos +  "-" +nEndPos;   //sProperty设置的是开始下载的位置,即断点。若nStartPos为0则完整下载整个文件   httpConnection.setRequestProperty("RANGE" , sProperty);//当然也可以这么写:httpConnection.setRequestProperty("RANGE","bytes=50-20070");   InputStream input = httpConnection.getInputStream();   FileOutputStream f = new FileOutputStream(new File(sPath));//读取网络文件,写入指定的文件中   int nRead,failedCnt=1;   while (nStartPos < nEndPos&&failedCnt<=NUMLIMIT_FAIL) {      try {         nRead = input.read(b, 0, blockSize);         if(nRead>0){            f.write(b, 0, nRead);            nStartPos += nRead;         }         else {            break;         }      } catch (Exception e) {         e.printStackTrace();      }   }   httpConnection.disconnect();   f.close();} catch (Exception e1) {   e1.printStackTrace();}

2. OKhttp

OkHttpClient client = new OkHttpClient();String url = "http://XXXXXXXX";try {       Request request = new Request.Builder().url(url).build();       Response response = client.newCall(request).execute();       InputStream is = response.body().byteStream();       Bitmap bm = BitmapFactory.decodeStream(is);       imageView.setImageBitmap(bm);} catch (IOException e) {            e.printStackTrace();}

3. Volley

String url = "http://XXXXXXXXXX";try {    ImageRequest imgrequest = new ImageRequest(url,new Response.Listener<Bitmap>() {                        @Override                        public void onResponse(Bitmap bitmap) {                            imageView.setImageBitmap(bitmap);                        }}, 0, 0, Bitmap.Config.RGB_565,                    new Response.ErrorListener() {                        public void onErrorResponse(VolleyError error) {                            System.out.println(error.getLocalizedMessage());                        }                    });            RequestQueue queue = Volley.newRequestQueue(this);            queue.add(imgrequest);        }catch (Exception e){            e.printStackTrace();        }

4. TransFramework

String url = "http://XXXXXXXXXXXXXXX";ImageRequest imgrequest = new ImageRequest(url,new Response.Listener<Bitmap>() {                    @Override                    public void onResponse(Bitmap bitmap) {                        imageView.setImageBitmap(bitmap);                    }}, 0, 0, null,new Response.ErrorListener() {                    public void onErrorResponse(VolleyError error) {                        System.out.println(error.getLocalizedMessage());                    }                });RequestQueue queue = Volley.newRequestQueue(this);queue.add(imgrequest);
0 0
原创粉丝点击