I'm using Retrofit 2 to call API in Android App. I have a API, using POST, which have a String param in Query Tag. I do everything like doc suppose and I test this API successfully in Test Page. I can run another API correctly so the problem is not the way I use Retrofit 2. Here is my interface:
@POST("/users/{userId}/get_list_friends")
    Call<GetListFriendDataResponse> getListFriend(@Path("userId") int userId, @Query("list") String list, @Query("page") int page, @Query("size") int size, @Header("hash") String hash);
Here is my implementation:
ArrayList<String> id = new ArrayList<>();
        id.add("4782947293");
        JSONArray jsonArray = new JSONArray(id);
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("list", jsonArray);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        String list = jsonObject.toString();
            Log.e(TAG, "list: " + list);
        apiInterface.getListFriend(21, list, 1,1,"AHHIGHTJGI").enqueue(new Callback<GetListFriendDataResponse>() {
            @Override
            public void onResponse(Call<GetListFriendDataResponse> call, Response<GetListFriendDataResponse> response) {
                Log.e(TAG, " response code: "+ response.code());
                               }
            @Override
            public void onFailure(Call<GetListFriendDataResponse> call, Throwable t) {
            }
        });
I always get response code: 400 when use this API. I'm focusing the "list" var. "list" is a JSON text but I wonder if method "jSon.toString()" is right to get a String from a JSONObject, which can using in Retrofit 2. List param form is:{"list":["12332"]} .
Please help me!
 
    