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來構建請求體,文件下載則是通過獲取響應體中的字節流并寫入到本地文件中實現的。在實際使用中,可以根據具體需求對代碼進行適當修改和擴展。