通過okhttp3方式呼叫另一個專案上傳檔案
阿新 • • 發佈:2018-12-03
OkHttp3檔案上傳介面
專案中用到需要將檔案上傳到另一專案B
上,專案B
提供了一個檔案上傳的介面。就用到了在後臺介面中傳送post
請求來將檔案傳過去。可以使用okhttp3
的方式,非常簡單。
1、加依賴
首先專案加如下依賴:
<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.3.1</version> </dependency>
2、方法如下
/** * * @param url 遠端專案上傳介面地址 * @param uploadDir 檔案儲存型別路徑,用於不同模組下分資料夾管理 * @param baseFileUrl 本地檔案儲存基路徑 * @param relativeUrl 本地檔案儲存相對路徑 * @return 呼叫遠端專案上傳介面的返回結果 */ public String uploadFilePost(String url,String uploadDir,String baseFileUrl,String relativeUrl){ File temporaryFile = new File(baseFileUrl+relativeUrl); if(!temporaryFile.exists()){ return ""; } RequestBody requestBody = new MultipartBody.Builder() .addFormDataPart("uploadDir", uploadDir) //引數一 .addFormDataPart("fileUrl", relativeUrl) //引數二 .addFormDataPart("file", temporaryFile.getName(), /RequestBody.create(MediaType.parse("application/octet-stream"),temporaryFile)) //引數三,是一個檔案 .build(); Request requestOk = new Request.Builder() .url(url) .post(requestBody) .build(); //post請求含請求引數 Response response; try { response = new OkHttpClient().newCall(requestOk).execute(); String jsonString = response.body().string(); // temporaryFile.delete(); if(response.isSuccessful()){ return jsonString; } } catch (Exception e) { e.printStackTrace(); } return ""; }
okhttp3
傳送檔案就這樣,挺簡潔的。