Использование метода PATCH в Retrofit и аннотации @Body - PullRequest
0 голосов
/ 04 декабря 2018

Мой URL-адрес

http://sales.xxxxx.com/api/v2/customers/5101117835

Когда я использую этот код, код ответа всегда равен 500.

Код интерфейса

@Headers({ "Content-Type: application/json;charset=UTF-8"})
@PATCH("customers/{custId}")
Call<GeoTag> postGeoTagData (@Body geoTagUserData geoTag, @Path("custId") String id, @Header("Authorization") String auth);

В действии

        Retrofit retrofit  = new Retrofit.Builder()
            .baseUrl(" http://sales.erprnd.com/api/v2/")
            .addConverterFactory(GsonConverterFactory.create())
            .build();
    ApiInterface apiInterface = retrofit.create(ApiInterface.class);

   Call<GeoTag> geoTagCall =  apiInterface.postGeoTagData(geoTagUserData, CustCode, "Bearer "+body.getToken() );
   geoTagCall.enqueue(new Callback<GeoTag>() {
       @Override
       public void onResponse(Call<GeoTag> call, Response<GeoTag> response) {

           Toast.makeText(GeoTaggingActivity.this, ""+response.code(), Toast.LENGTH_SHORT).show();
       }

       @Override
       public void onFailure(Call<GeoTag> call, Throwable t) {
           Toast.makeText(GeoTaggingActivity.this, "Failed", Toast.LENGTH_SHORT).show();
       }
   });

Когда я использую Почтальон, ответ равен 201 И ответ IS {}, чтоХорошо.Мой jsonObject

{
 "latitude":11.22,
 "longitude":22.11,
 "alt_address":"test address",
 "height":"12 ft",
 "width":"24 ft",
 "photo": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAAD"
}

Я создал еще один класс, где я получаю всю информацию от пользователя: geoTagUserData Я получаю всю информацию совершенно

Пожалуйста, помогите мне найтиошибка.

1 Ответ

0 голосов
/ 05 декабря 2018

Наконец, я получил решение, которое заключается в том, что когда я отправляю данные для отправки данных на сервер из моего приложения, он просто получает значение для каждой формы поля geoTagUserData Класс, который не публикует преобразованные данные в JsonFormet,Когда мой сервер обнаружил, что я просто значения не в JsonFormet, то он просто отклонил и Возврат 500 ошибка

Итак, мое решение просто с помощью Gson Converter getЗначение формируется пользователем и преобразовывается в объект Json.и отправить это на сервер, который вернет 201

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...