Я пытаюсь загрузить файл с помощью метода HTTP PUT,
Я попытался с OkHttp успешно, но потерпел неудачу с Retrofit.
Вот мои коды:
static final String MEDIA_TYPE = «изображение / JPEG»
// file is a file path
RequestBody requestBody = getRequestBody(file);
OkHttpClient client = getOkHttpClient();
Request request = new Request.Builder()
.url(url)
.put(requestBody)
.build();
okhttp3.Response response = response = client.newCall(request).execute();
private RequestBody getRequestBody(String filePath) {
MediaType contentType = MediaType.parse(MEDIA_TYPE);
return RequestBody.create(contentType, new File(filePath));
}
Код, указанный выше, выполнен успешно.
Что эквивалентно Retrofit?
Я попытался и потерпел неудачу:
открытый интерфейс UploadFileService {
Строка CONTENT_TYPE = "image / jpeg";
/** base url, just for Retrofit usage demand. */
String BASE_URL = "https://not.used.net/";
/** Must be consistent with the following uploadFile annotation. */
String UPLOAD_FILE_HTTP_METHOD = "PUT";
@Multipart
@Headers("Content-Type:" + CONTENT_TYPE)
@PUT()
Observable<Response<MinaResponse<LocalAlbum.DummyResponse>>> uploadFile(@Url String url, @Part RequestBody fileBody);
}