首页 > 解决方案 > 改造调用请求只接收消息部分,不接收正文部分

问题描述

在对我的代码进行一些更改后,我可以向 API 发送改造请求。

现在的问题是我只从响应中接收消息部分,而不是正文部分。这是界面:

public interface JsonPlaceHolderApi {

    @GET("posts")
    Call<List<Post>> getPosts();

    @FormUrlEncoded
    @POST("token")
    Call <ResponseBody> createLoginRequest(@Field("username") String username,
                                          @Field("password") String password,
                                          @Field("grant_type") String grant_type,
                                          @Field("latitude") String latitude,
                                          @Field("longitude") String longitude

                                          );
}

这是请求部分:

 private void login_Request() {


        Log.d("ESTOY EN LOGIN REQUEST", "ESTOY EN LOGIN REQUEST");

        JsonPlaceHolderApi jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);


        Call<ResponseBody> call = jsonPlaceHolderApi.createLoginRequest("HALEJANDRO", "ALEJANDR0123", "password", "19.4953148", "-99.1131595");

        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                Log.d("ESTOY EN LOGIN REQUEST", "ESTOY EN LOGIN REQUEST success "+response);




            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Log.d("ESTOY EN LOGIN REQUEST", "ESTOY EN LOGIN REQUEST error");
            }
        });


    }

这是收到的回复:

Response{protocol=http/1.1, code=200, message=OK, url=http://10.....:5000/token}

我需要让身体部位进一步处理接收到的数据。

编辑

使用 REST API 客户端(如 postman)收到的响应如下所示:

在此处输入图像描述

标签: androidretrofit2

解决方案


您将使用response.body().

像这样:

call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                if (response.isSuccessful()) {
                    String object = response.body().string();
                    Log.d("response string.....", object);
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {

            }
        });

推荐阅读