Модифицированный метод Post дает нулевой ответ - PullRequest
0 голосов
/ 29 марта 2020

Я хочу опубликовать List<Airport> и сохранить его в базе данных веб-сервера с помощью Retrofit. Например, я написал простой API, который берет список из Retrofit и отвечает тем же списком в качестве входных данных, но он дает значение NULL, как видно в журнале

*, просто для целей тестирования, чтобы проверить, совпадают ли входные и выходные данные.

Android Код:

 val call: Call<ResponseBody> = ApiClient.getClient.pushListAirport(
                            localListDiff, "Bearer "+Util.token)
                        call.enqueue(object : Callback<ResponseBody> {

                            override fun onResponse(call: Call<ResponseBody>?, response: Response<ResponseBody>?) {
                                Log.d("sfsdfsdf", Gson().toJson(response?.body()))
                                Toast.makeText(applicationContext, response?.body()?.name,Toast.LENGTH_LONG).show()
                            }

                            override fun onFailure(call: Call<ResponseBody>?, t: Throwable?) {
                                Toast.makeText(applicationContext, t?.message,Toast.LENGTH_LONG).show()
                            }

                        }) 

Пример localListDiff:

[Airport(name=Name, created_at=2020-03-29 07:22:15, updated_at=2020-03-29 07:22:15, is_synced=0, id=9), Airport(name=df, created_at=2020-03-28 20:44:33, updated_at=2020-03-28 20:44:33, is_synced=1, id=10), Airport(name=Name, created_at=2020-03-29 07:39:40, updated_at=2020-03-29 07:39:40, is_synced=0, id=11)]

Модифицированный интерфейс:

@FormUrlEncoded
    @POST("airports")
    fun pushListAirport(
        @Field("list[]") list : List<Airport>,
        @Header("Authorization") authHeader:String
    ): Call<ResponseBody>

Журнал:

2020-03-29 21:36:08.688 21729-21729/zohaiblab.devtros.kotlinpractice D/sfsdfsdf: null

Laravel API:

public function store($req) {
        return $req->input("list");
    }

public function store(Request $request)
    {
        try {
            $data =  $this->service->store($request);
            return response()->json($data, 201);
        } catch (Exception $e) {
            return response()->json(['message' => $e->getMessage()], 500);
        }
    }
...