java 基于http协议实现断点上传功能

最近在做上传,功能基于http协议,没接触过此方面内容,无从下手,有大牛有相关经验,求指导

https://github.com/mzpbvsig/FileDownloader

                    URL url = new URL(url);//下载文件链接
                    long size=getFileSize();//本地文件大小
                    // 创建连接
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setRequestMethod("GET");
                    conn.setRequestProperty("range", "bytes="+size+"-");//设置以本地文件大小的位置开始读取数据
                    conn.connect();
                    // 获取文件大小
                    int code=conn.getResponseCode();
                    if(code==206){
                        // 创建输入流
                        InputStream is = conn.getInputStream();
                        long length = conn.getContentLength();
                        File file = new File(mSavePath);
                        // 判断文件目录是否存在
                        if (!file.exists()){
                            file.mkdirs();
                        }
                        RandomAccessFile out = new RandomAccessFile(apkFile,"rw");
                        out.seek(size);
                        int count = 0;
                        // 缓存
                        byte buf[] = new byte[1024];
                        // 写入到文件中
                        do
                        {
                            int numread = is.read(buf);
                            if (numread <= 0)
                            {
                                // 下载完成
                                break;
                            }
                            // 写入文件
                            out.write(buf, 0, numread);
                        } while (!cancel);//取消下载
                        out.close();
                        is.close();
                    }else if (code==416) {
                        //下载完成 ,本地文件大小大于等于下载文件
                    }