有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Web服务改进解析

这种改装有什么问题?请求就是成功,但没有价值

这就是我的json的样子

 [
    {
        "msg": "test",
        "time": "2017-06-20 00:39:31",
        "kind": "txt"
    },
    {
        "msg": "مرحبا يا برو",
        "time": "2017-06-20 00:40:02",
        "kind": "txt"
    },
    {
        "msg": "url",
        "time": "2017-06-20 01:57:12",
        "kind": "img"
    },
    {
        "msg": "url",
        "time": "2017-06-20 01:58:54",
        "kind": "video"
    }
]

AllMessagesResponse类

public class AllMessagesResponse {

    public ArrayList<MessagesInfo> getMessagesInfos() {
        return messagesInfos;
    }

    private ArrayList<MessagesInfo>messagesInfos=new ArrayList<>();

}

MessageInfo类

public class MessagesInfo{

    @SerializedName("time")
    private String time;

    @SerializedName("msg")
    private String msgs;

    @SerializedName("kind")
    private String kind;

    @SerializedName("sender")
    private String senderID;

    public String getTime() {
        return time;
    }

    public String getMsgs() {
        return msgs;
    }

    public String getKind() {
        return kind;
    }

    public String getSenderID() {
        return senderID;
    }
}

API类

@POST("chat/veiwPeerToPeer.php")
    Call<AllMessagesResponse>getMessages(@Body AllMessages allMessages);

主要活动课

AllMessages allMessages=new AllMessages();
        allMessages.senderID=MainActivity.userId;
        allMessages.receiverID=receiverId;
        WebService.getInstance().getApi().getMessages(allMessages).enqueue(new Callback<AllMessagesResponse>() {
            @Override
            public void onResponse(Call<AllMessagesResponse> call, Response<AllMessagesResponse> response) {
                AllMessagesResponse allMessagesResponse=response.body();
                setTitle(String.valueOf(allMessagesResponse.getMessagesInfos().size()));
            }

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

            }
        });

onResponse正在运行,但我没有得到任何值


共 (1) 个答案

  1. # 1 楼答案

    您不需要另一个pojo列表,您可以直接请求列表改装,直接提供列表

    Call<List<POJO>>
    

    我得到了和你一样的JSON响应SEE URL

    apiInterface = new Retrofit.Builder()
                            .baseUrl(BASE_URL_ANDROIDHIVE)
                            .addConverterFactory(GsonConverterFactory.create())
                            .build().create(ApiInterface.class);
    
                    final Call<List<AndroidHive>> hiveCall = apiInterface.getAllMovies();
    
                    hiveCall.enqueue(new Callback<List<AndroidHive>>() {
                        @Override
                        public void onResponse(Call<List<AndroidHive>> call, Response<List<AndroidHive>> response) {
    
                            if (response.isSuccessful()) {
                                progressDialog.dismiss();
                                List<AndroidHive> hiveList = response.body();
    
                                tv_retrofit.setText("Title : " + hiveList.get(3).getTitle() + "\n Image : " + hiveList.get(3).getImage() + "\n Rating : " + hiveList.get(3).getRating() + " \n Release Year : " + hiveList.get(3).getReleaseYear() + "\n  Gener : " + hiveList.get(3).getGenre());
    
                            } else {
                                Toast.makeText(getActivity(), "Response Failed Code : " + response.message(), Toast.LENGTH_SHORT).show();
                                progressDialog.dismiss();
                            }
                        }
    
                        @Override
                        public void onFailure(Call<List<AndroidHive>> call, Throwable t) {
                            System.out.println(t.getStackTrace().toString());
                            progressDialog.dismiss();
                        }
                    });