Проблемы со списком> и ПОСТ в Retrofit2 - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть webService, который я читаю и возвращает результат List >>.

Этот объект содержит серию значений, которые я получаю, когда retrofit2 выполняет GET. Я изменяю некоторые данные этого объекта, которые я получаю List >>, обрабатывая его как ArrayList List >>> title = new ArrayList >>> ();

Пока все идеально, моя проблема в том, что я не могусделать POST с измененным объектом и отправить его на мой webService.

У меня есть класс, который я вызываю POST, где я получаю объект и выполняю get и устанавливаю

Post class

public class Post {

   @SerializedName("result")
   @Expose
   private List<List<List<Object>>> result = null;

   public List<List<List<Object>>>  getResult() {
      return result;
   }

   public void setResult(List<List<List<Object>>> result) {
      this.result = result;
   }

}

С другой стороны, у меня есть класс PostService, в котором я выполняю GET и POST.

Я не знаю, что я делаю неправильно, поэтому POST не работает дляme.

Android Studio не выдает никаких ошибок, но не изменяет WebService при вызове POST.

public interface PostService {

   String API_ROUTE = " obtenerListaAlarmasSMS";

   @GET(API_ROUTE)    
   Call<Post> getPost(@Header("Authorization") String credencialesEnBase64);

   @POST(API_ROUTE)
   @FormUrlEncoded
   Call<Post> UpdatePostCall(@Field("result:[]") List<List<List<List<Object>>>> result  ); 
}

Здесь я помещаю текст при вызове POST

 Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("http://192.168.0.249:9096/datasnap/rest/TMetodosREST/")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            PostService Intento = retrofit.create(PostService.class);
            Call <Post> call3 = Intento.UpdatePostCall(OtroArrayVacio);
            try {

                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy);

                Response<Post> response = call3.execute();
            } catch (IOException e) {
                e.printStackTrace();
            }

У POJO есть следующее:

{
   "result":[
      [
         [
            12,
            "01",
            1,
            "Fallo de corriente",
            0,
            1
         ],
         [
            12,
            "01",
            2,
            "Nivel m\u00E1ximo (activaci\u00F3n)",
            0,
            0
         ],
         [
            12,
            "01",
            3,
            "Nivel m\u00E1ximo (desactivaci\u00F3n)",
            0,
            0
         ],
         [
            12,
            "01",
            4,
            "Nivel desborde",
            0,
            1
         ],
         [
            12,
            "01",
            5,
            "Falta de agua",
            0,
            0
         ],
         [
            12,
            "01",
            6,
            "Exceso de caudal",
            0,
            0
         ],
         [
            12,
            "01",
            7,
            "Defecto de caudal",
            0,
            0
         ]
      ]
   ]
}

Возможно, моя проблема связана с POJO, но дело в том, что мне удалось обработать ее так же, как retrofit2 дает мне в Списке >>.

Что мне нужно, так это после того, как объект был изменен, отправить его в webServiно я не понимаю.

...