繁体   English   中英

Web Service改造解析

[英]Web Service retrofit parsing

这个改造有什么问题? 请求成功,但没有价值

这就是我的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正在工作,但我没有任何价值

您不需要其他pojo即可直接请求列表Retrofit直接提供列表。

Call<List<POJO>>

我获取与您相同的JSON响应。 查看网址

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();
                    }
                });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM