使用Json正文捕获Retrofit Call的List响应

时间:2018-01-02 05:03:55

标签: android json arraylist retrofit retrofit2

所有

我正在尝试使用Retrofit将原始json作为POST请求中的正文发送到服务器。

@POST("api/apps")
Call<List<GetApps>> getApp(@Body GetApps body);

我已经使用jsontopojo为回复的响应构建了模型。

在我的调用中,我已经将构造函数和getter以及setter和toString()放在一起。

这是我的改装电话。

        Retrofit retrofit = new Retrofit.Builder()
                        .baseUrl(APIUrl.BASEURL)
                        .addConverterFactory(GsonConverterFactory.create())
                        .build();

        APIService apiService = retrofit.create(APIService.class);

        Call<List<GetApps>> call = apiService.getApp();

        call.enqueue(new Callback<List<GetApps>>() {
            @Override
            public void onResponse(Call<List<GetApps>> call, Response<List<GetApps>> response) {
                List<GetApps> GetApps2 = response.body();


                Toast.makeText(getApplicationContext(),"success", Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onFailure(Call<List<GetApps>> call, Throwable t) {
                Toast.makeText(getApplicationContext(),"Failure", Toast.LENGTH_SHORT).show();


            }
        });

我在这一行收到错误:

Call<List<GetApps>> call = apiService.getApp();

它说getApp(getApps)不能应用于();不确定应该进入();

3 个答案:

答案 0 :(得分:1)

您必须将GetApps getApps = new GetApps(); //set all your data on getApps //getApps.setYourData(yourData); Call<List<GetApps>> call = apiService.getApp(getApps); 对象作为参数传递:

select mod(15.6,1)

答案 1 :(得分:0)

您提出请求

@POST("api/apps")
Call<List<GetApps>> getApp(@Body GetApps body);

将接受将附加到网址的正文。

只需在getApp(@Body GetApps body);中添加body //接受JSON字符串作为参数。

快乐的编码!!

答案 2 :(得分:0)

在Post的顶部添加Call<List<GetApps>> call = apiservice.getApp(getAppOne);并将GetApp模型作为正文传递...       count < Values