/**
*
* @param path 上傳文件本地地址
* @param url 上傳地址
* @param username 賬號
* @param password 密碼
*/
public static void upload(String path,String url,String username,String password){
String name = path.substring(path.lastIndexOf("/") + 1);
final String basic = Credentials.basic(username, password);
RequestBody body = RequestBody.create(MediaType.parse("image/jpeg"), new File(path));
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
//參數分別爲:文件,文件名字,文件類型與路徑
.addFormDataPart("file", name, body)//文件名
.build();
OkHttpClient client = new OkHttpClient.Builder()
.authenticator(new Authenticator() {
@Override
public Request authenticate(Route route, Response response) throws IOException {
return response.request().newBuilder().header("Authorization", basic).build();
}
})
.connectTimeout(10, TimeUnit.SECONDS)
.writeTimeout(10, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("連接失敗", "onFailure: " + e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.e(TAG, "連接成功:" + response);
}
});
}
Android使用OkHttp(Basic認證)並上傳文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.