[Java]通过okhttp3库实现下载文件

您所在的位置:网站首页 安卓下载文件到本地 [Java]通过okhttp3库实现下载文件

[Java]通过okhttp3库实现下载文件

2023-07-13 08:44| 来源: 网络整理| 查看: 265

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