Я работаю над приложением для Android, которое работает с кучей веб-сервисов.Я использую retrofit2 для всех остальных функций, и это почти идеально работает.За исключением загрузки файла, я отправляю файл (изображение в формате JPEG) и строку (описание).Я получаю ответ 500 от своего веб-сервиса, я проверил журналы и пытаюсь увидеть запрос, который отправляет приложение, но, к сожалению, журналы ошибок пусты.Кажется, что сервер apache отклоняет запрос, так как он может быть искажен.
Интерфейс определяется следующим образом
@Multipart
@POST("api/mobilesale/orders/{id}/documents/multipleUpload")
Call<ResponseBody> uploadDocument(@Header("Authorizarion") String token,
@Part MultipartBody.Part file,
@Path("id") int orderId,
@Part("documentType") RequestBody document_type);
Метод загрузки определяется следующим образом
private void upload(File file, String documentType, String token, int orderId)
{
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(LDLMobileDataService.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
MobileDataService serviceAPI = retrofit.create(MobileDataService.class);
RequestBody requestBody = RequestBody.create(MediaType.parse(getContentResolver().getType(file_uri)), file);
MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("document", file.getName(), requestBody);
RequestBody documentType = RequestBody.create(MediaType.parse("text/plain"), documentType);
Call<ResponseBody> call = serviceAPI.uploadDocument("Bearer "+ token, fileToUpload, orderId, documentType);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if(response.isSuccess())
{
Toast.makeText(getApplicationContext(), "File Upload Success", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(), "File Upload Error", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(getApplicationContext(), "File Upload Failure", Toast.LENGTH_LONG).show();
}
});
}
Чего мне не хватает?