Я создаю рельсы backend для загрузки изображения из браузера & Мобильный клиент (Android) с помощью paperclip gem. Он отлично работает со всеми браузерами, мобильным браузером, а также с HTTP REST Client, но не работает с клиентом Android с модифицированной http-библиотекой. Действительно ли это совместимы друг с другомRails paperclip gem с Android Retrofit 2.X не работает
1
A
ответ
2
ответ ДА Разве это не легко сделать это работает, но,
Вот как я это сделал ... его работы для меня
Интерфейс декларации
public interface MultimediaApi {
@Multipart
@POST("api/v1/multimedia")
Call<ResponseBody> uploadMultimedia(@Part("tipo]") String tipo,
@Part("archivo\"; filename=\"myimageName\" ") RequestBody archivo, // archivo is the how we named the field of the file in rails server
// see filename=\"myimageName\" does not have file extension to avoid problems with paperclip content types validations
@Part("texto") String texto,
@Part("acoplable_id") String acoplable_id,
@Part("acoplable_type") String acoplable_type
);
}
На выполнение потока
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(RestConnection.BASE_URL_MULTIMEDIA)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
MultimediaApi apiService =
retrofit.create(MultimediaApi.class);
Call<ResponseBody> call;
MediaType MEDIA_TYPE = MediaType.parse("image/jpeg");
File file = new File(filePath);
RequestBody requestBody = RequestBody.create(MEDIA_TYPE, file);
call = apiService.uploadMultimedia(
type.toString(),
requestBody,
text.toString(),
acopable_id.toString(),
acopable_type.toString()
);
Response<ResponseBody> response = call.execute();
int statusCode = response.code();
if (statusCode == 201) {
// Server response OK
} else {
//failed
Throwable th = new Throwable("Status Code:" + statusCode + " Error uploading image... Response: " + response.body());
return th;
}
это примеры помогают мне много, чтобы решить мою проблему, я просто сделал некоторые изменения, чтобы заставить его работать, так что будьте осторожны, чтобы увидеть каждую деталь
https://guides.codepath.com/android/Consuming-APIs-with-Retrofit
https://futurestud.io/blog/retrofit-2-how-to-upload-files-to-server
/**Pura Vida**/
Спасибо .. Это было полезно .. Мне не хватало свойства имени файла для запроса. –
Отлично :) приветствую – andrey2ag