android笔记-网络编程2

2016-03-28  本文已影响40人  法神赵日天

HttpClient(掌握)

发送get请求

发送post请求

    //创建一个客户端对象
    HttpClient client = new DefaultHttpClient();
    //创建一个post请求对象
    HttpPost hp = new HttpPost(path);

异步HttpClient框架(熟悉)

发送get请求

    //创建异步的httpclient对象
    AsyncHttpClient ahc = new AsyncHttpClient();
    //发送get请求
    ahc.get(path, new MyHandler());

发送post请求


多线程下载(掌握)

原理:服务器CPU分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服务器资源

确定每条线程下载多少数据(掌握)

计算每条线程下载数据的开始位置和结束位置(掌握)

    for(int id = 1; id <= 3; id++){
        //计算每个线程下载数据的开始位置和结束位置
        int startIndex = (id - 1) * blockSize;
        int endIndex = id * blockSize - 1;
        if(id == THREAD_COUNT){
            endIndex = length;
        }
                        
        //开启线程,按照计算出来的开始结束位置开始下载数据
        new DownLoadThread(startIndex, endIndex, id).start();
    }

再次发送请求至下载地址,请求开始位置至结束位置的数据(掌握)

    String path = "http://192.168.1.102:8080/editplus.exe";

    URL url = new URL(path);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setReadTimeout(5000);
    conn.setConnectTimeout(5000);
    conn.setRequestMethod("GET");
    
    //向服务器请求部分数据
    conn.setRequestProperty("Range", "bytes=" + startIndex + "-" + endIndex);
    conn.connect();

带断点续传的多线程下载(掌握)


手机版的断点续传多线程下载器

用进度条显示下载进度(掌握)

添加文本框显示百分比进度(熟悉)

    tv.setText(progress * 100 / pb.getMax() + "%");

HttpUtils的使用(熟悉)

HttpUtils本身就支持多线程断点续传,使用起来非常的方便

上一篇下一篇

猜你喜欢

热点阅读