OKHttp上傳檔案帶參數簡單使用三部曲:
建構以下三個對象:
MultipartBody.Builder()
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
RequestBody
RequestBody requestBody=builder.build();
Request
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
/**
* 上傳圖檔附帶參數
* @param url 路徑
* @param photoPaths 圖檔路徑
* @param dir 輸入api參數
* @param callback 回調接口
*/
public static void uploadImage(String url, String photoPaths, String dir, Callback callback){
File file = new File(photoPaths);
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("dir", dir)
.addFormDataPart(file.getName(), file.getName(),RequestBody.create(MEDIA_TYPE_MARKDOWN, file)).build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
okHttpClient.newCall(request).enqueue(callback);
}
MultipartBody支援同時上傳多個檔案,在MultipartBody.Builder對象循環添加檔案參數即可。
GitHub原位址:
OkHttp WIKI