温馨提示×

OkHttp怎样实现文件的上传下载

小樊
93
2024-06-18 14:58:00
栏目: 编程语言

OkHttp是一个基于HTTP和SPDY的网络请求库,可以实现文件的上传和下载操作。下面是使用OkHttp实现文件上传和下载的示例代码:

文件上传示例:

OkHttpClient client = new OkHttpClient();

File file = new File("path/to/file");

RequestBody requestBody = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse("application/octet-stream"), file))
        .build();

Request request = new Request.Builder()
        .url("http://example.com/upload")
        .post(requestBody)
        .build();

Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
    // 文件上传成功
} else {
    // 文件上传失败
}

文件下载示例:

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
        .url("http://example.com/file.txt")
        .build();

Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
    File file = new File("path/to/save/file.txt");
    FileOutputStream fos = new FileOutputStream(file);
    fos.write(response.body().bytes());
    fos.close();
    // 文件下载成功
} else {
    // 文件下载失败
}

以上代码示例展示了如何使用OkHttp进行文件的上传和下载操作,其中文件上传使用MultipartBody来构建请求体,文件下载则是通过获取响应体中的字节流并写入到本地文件中实现的。在实际使用中,可以根据具体需求对代码进行适当修改和扩展。

0