okhttp下载文件
时间: 2024-08-01 09:00:49 浏览: 47
OkHttp是一个轻量级、高效的HTTP客户端库,由Square公司维护,它非常适合于Android应用和服务器之间的网络通信。如果你想用OkHttp下载文件,可以按照以下步骤操作:
1. 首先,添加依赖到你的项目中。如果你使用的是Gradle构建工具,可以在`build.gradle`文件的dependencies块中加入:
```groovy
implementation 'com.squareup.okhttp3:okhttp:4.x.y'
```
2. 创建一个OkHttpClient实例,并设置请求头(如支持流式传输):
```java
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS) // 设置连接超时
.readTimeout(10, TimeUnit.SECONDS) // 设置读取超时
.build();
Request request = new Request.Builder()
.url("https://example.com/file.zip") // 替换为你需要下载的文件URL
.header("User-Agent", "MyApp/1.0") // 添加请求头信息
.build();
```
3. 使用OkHttpClient发起GET请求并处理响应:
```java
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) {
throw new IOException("Unexpected code " + response);
}
// 获取文件名,如果没有指定则默认文件名为download.txt
String fileName = response.request().url().path();
try (ResponseBody body = response.body()) {
// 将响应体内容写入本地文件
Files.copy(body.byteStream(), new File(fileName));
}
```
4. 当然,为了更优雅地处理下载进度,你可以选择使用RequestBody的source方法获取一个Source,然后通过ProgressListener监听下载进度。
阅读全文