Android - 如何在Robospice/retrofit中获取JSON格式请求和响应

SKK*_*SKK 2 android json web-services robospice retrofit

我是Robospice /改造图书馆的新手.我从github得到了一些样本.https://github.com/octo-online/RoboSpice-samples/tree/release/robospice-sample-retrofit.

我的理解:

请求是"githubRequest",响应是"Contributor.List".web服务由getSpiceManager().execute执行.

代码片段:

    @Override
        protected void onStart() {
            super.onStart();
            getSpiceManager().execute(githubRequest, "github", DurationInMillis.ONE_MINUTE, new ListContributorRequestListener());
    } 

public final class ListContributorRequestListener implements RequestListener<Contributor.List> {

    @Override
    public void onRequestFailure(SpiceException spiceException) {
        Toast.makeText(SampleSpiceActivity.this, "failure", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRequestSuccess(final Contributor.List result) {
        Toast.makeText(SampleSpiceActivity.this, "success", Toast.LENGTH_SHORT).show();
        updateContributors(result);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题:我想从应用程序检查请求/响应("githubRequest"/"Contributor.List")是否将正确的JSON发送到服务.那么如何sysout JSON请求和响应.但请求/响应是POJO对象.但是如果我想打印JSON请求和响应,我该怎么做?有人帮我这样做吗?

MrE*_*r13 11

要打印响应对象,首先将回调对象类型更改为泛型Object类型via Callback<Object> cb.然后在成功回调中,您可以只记录对象以将Json格式化版本打印到控制台.

@Override
public void success(Object o, Response response) {
    Log.i("Tag", "Login data " + o.toString());
}
Run Code Online (Sandbox Code Playgroud)

要打印请求对象,您可以使用您使用的任何Json库(这里我使用Gson)将请求对象序列化为Json并将其记录到控制台.

Log.i("Tag", "Login data " + new Gson().toJson(requestObject));
Run Code Online (Sandbox Code Playgroud)