Бэкэнд-сервис для Post api:
public System.Web.Mvc.JsonResultNewMarketActivityLog(FFM.BusinessObjects.MainObjects.MarketActivity.MarketActivityBO item,System.Web.HttpPostedFileBase[ ] files)
Я должен передать в нем два параметра. Одним из них является класс POJO MarketActivityBO, а вторым - список изображений для загрузки.
Поэтому я разрабатываю этот интерфейс в соответствии с требованием:
@Multipart
@POST("NewMarketActivityLog")
Call<SubmitResponse> submitNewActivity(@Part("item") RequestBody item, @Part MultipartBody.Part[]
files);
Затем я преобразовал файл File [] в Multipartbody.Part. Массив и класс POJO для запроса тела. Теперь при вызове API всегда вызывается функция обратного вызова onFailure. Я новичок в Retrofit, поэтому, пожалуйста, помогите мне, я не могу разобраться в проблеме. Я упоминал код ниже:
MarketActivityBO item = new MarketActivityBO(userID, ActivityCategoryID, ActivityTypeID,
Constants.settingResponseResult.getObjWeek().getWeekNo(), 2020, "2020-02-17", "Testing");
final MultipartBody.Part[] parts = new MultipartBody.Part[files.size()];
for (int i = 0; i < files.size(); i++) {
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"),files.get(i));
parts[i] = MultipartBody.Part.createFormData("files", files.get(i).getName(),requestFile);
}
Gson gson = new GsonBuilder().setLenient().create();
RequestBody modelBody = RequestBody.create(MediaType.parse("application/json"),gson.toJson(item));
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.URL + "/MarketActivity/")
.addConverterFactory(GsonConverterFactory.create())
.build();
Api api = retrofit.create(Api.class);
Call<CancelJPStore> call = api.submitNewActivity(modelBody,parts);
call.enqueue(new Callback<CancelJPStore>() {
@Override
public void onResponse(Call<CancelJPStore> call, Response<CancelJPStore> response) {
CancelJPStore cancelJPStore=response.body();
Toast.makeText(MainActivity.this,cancelJPStore.isResponseObject()+"",Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<CancelJPStore> call, Throwable t) {
Toast.makeText(MainActivity.this,"Falseeee",Toast.LENGTH_SHORT).show();
}
});
Когда я запускаю мой код, запускается ошибка. Не могли бы вы, ребята, помочь мне с тем, что я делаю неправильно.