Я кодирую изображение, используя следующий метод:
Bitmap bm = BitmapFactory.decodeFile(mCurrentPhotoPath);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] byteArrayImage = baos.toByteArray();
encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);`
Я отправляю данные с помощью модификации следующим образом:
newFoodModel = new NewFoodModel(food_name,food_unit,food_price,encodedImage,providerId,foodCategoryId);
Call<ServiceResponse>serviceResponseCall = uploadFoodApi.getResponseResult(newFoodModel);
serviceResponseCall.enqueue(new Callback<ServiceResponse>() {
@Override
public void onResponse(Call<ServiceResponse> call, Response<ServiceResponse> response) {
if(response.code() == 200){
ServiceResponse serviceResponse = response.body();
Toast.makeText(AddFoodActivity.this, serviceResponse.getMessage(), Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(AddFoodActivity.this, response.code()+","+response.message(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ServiceResponse> call, Throwable t) {
Toast.makeText(AddFoodActivity.this, "Check connection", Toast.LENGTH_SHORT).show();
}
});
Я не знаю, где я делаю неправильно, ответ сервера - код ошибки: 500, внутренняя ошибка сервера.
мой класс модели ответа:
public class ServiceResponse {
@SerializedName("ResultState")
@Expose
private Boolean resultState;
@SerializedName("Message")
@Expose
private String message;
public Boolean getResultState() {
return resultState;
}
public void setResultState(Boolean resultState) {
this.resultState = resultState;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
интерфейс, который обрабатывает запрос:
public interface UploadFoodApi {
@POST("after_part_of_base_url")
Response<ServiceResponse> getResponseResult(@Body NewFoodModel newFoodModel);
}
serviceResponseCall = uploadFoodApi.getResponseResult(newFoodModel);
. Интересно, что вы пытаетесь получить с помощью getResponseResult. Ваш вызов еще не поставлен в очередь, и onResponse будет запущен намного позже. - person greenapps   schedule 30.01.2017Call< NewFoodModel> call, Response<ServiceResponse>
ответ, попробуйте это.. - person ZeroOne   schedule 30.01.2017