[Java]通过okhttp3库实现下载文件 |
您所在的位置:网站首页 › 安卓下载文件到本地 › [Java]通过okhttp3库实现下载文件 |
0.前言
最近对M3U8解析特别感兴趣,通过python脚本简单实现了解析m3u8和多线程下载之后,想用Java、Kotlin还有C/C++尝试实现。 本文主要实现使用OKHttp3实现非常简单的Http文件下载,然后保存在本地。 没有多线程的部分,多线程部分会单独写一个笔记 1.maven安装 com.squareup.okhttp3 okhttp 4.9.0 junit junit 4.12 test org.junit.jupiter junit-jupiter-api 5.5.0 test分别是okhttp3、junit、jupiter。后两者用于测试模块,没有需求的话可以不导 2.通过Funciton获取ResponseBody public ResponseBody getResponeBody(String url) { ResponseBody result =null; OkHttpClient okHttpClient = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Call call = okHttpClient.newCall(request); try { Response response = call.execute(); // System.out.println(response.headers()); // System.out.println(response.body().string()); result = response.body(); } catch (IOException e) { e.printStackTrace(); } return result; }这边要注意的是ResponeseBody.string()只能调用一次。 3.处理ResponseBody获取String或者是IOStream通过简单的转换获得。 //获取String String res = ResponseBody.string(); //获取InputStream InputStream is = ReasponseBody.byteStream(); 4.保存文件属于基本的文件操作,直接把函数贴上来 //将InputStream写入到文件,成功返回true 失败返回false public boolean WriteFile4InputStream(String FilePath,InputStream inputStream) { //默认为flase 即失败 boolean result = false; try { OutputStream os = new FileOutputStream(FilePath); os.write(inputStream.readAllBytes()); os.close(); result = true; }catch (IOException e) { e.printStackTrace(); result = false; } return result; }Code: Gitee Github 参考: Java发送http请求方法之OkHttp3 从OKHTTP下载二进制文件 java 保存inputstream Maven工程使用Junit进行单元测试 Java 流(Stream)、文件(File)和IO |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |