当前位置: 首页 > 知识库问答 >
问题:

如何打印完整的json响应?

宓季同
2023-03-14
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
OkHttpClient client = new OkHttpClient();
        client.interceptors().add(new Interceptor() {
            @Override
            public Response intercept(Interceptor.Chain chain) throws IOException {
                Response response = chain.proceed(chain.request());                
                return response;
            }
        });


        Gson gson = new GsonBuilder()
                .setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
                .create();


        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ROOT)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .client(client)
                .build();

        REST_CLIENT = retrofit.create(APIService.class);

APIService:

   @GET("my/json")
    Call<Model> getFeed();

在活动调用API中:

Call<Model> call = RestClient.get().getFeed();
call.enqueue(new Callback<Model>() {
    @Override
    public void onResponse(Response<Model> response, Retrofit retrofit) {

        Log.w("2.0 getFeed > response.raw() => ", response.raw().toString());//DONT WORK
        Log.w("2.0 getFeed > retrofit => ", retrofit.toString());//DONT WORK
        Log.w("2.0 getFeed > body => ", response.body().toString()); //DONT WORK
        Log.w("2.0 getFeed > getStatus => ", response.body().getStatus());

    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
        Log.e("2.0 getFeed > onFailure => ", t.toString());
    }
});

共有1个答案

公良莫希
2023-03-14

要在JSON中打印完整响应,请执行以下操作:

Log.w("2.0 getFeed > Full json res wrapped in gson => ",new Gson().toJson(response));

如果您想拥有漂亮的打印功能,请使用:

Log.w("2.0 getFeed > Full json res wrapped in pretty printed gson => ",new GsonBuilder().setPrettyPrinting().create().toJson(response));

请注意,这将打印反序列化的数据(而不是从服务器返回的原始响应)。要获得原始响应,您可以使用以下方法之一:

    null
 类似资料:
  • 问题内容: 我想读取捕获的异常的完整堆栈跟踪。 例如: 我想阅读“ … 23更多”,以了解异常的来源。 问题答案: 答案很简单,这些行已经在stacktrace中了:) 基本上,以下情况正在发生:

  • 我正在使用改型,我想访问从服务器返回的JSON响应。有人能给我提个建议吗?谢谢

  • 我正在使用Volley向API发出GET请求: 预期的JSON对象响应很大(可能高达500 KB)。我无法在日志中看到完整的响应。仅显示前50行左右。我还得到了info: BasicNetwork.log慢速请求:请求的HTTP响应= 这意味着请求需要超过3000毫秒。 尝试过的事情: 我已经在手机的开发者选项中将记录器缓冲区大小增加到1M。 原因可能是什么?当它很大的时候,响应是大块发送的吗?如

  • > 我试图将JSON文件导入变量,但变量中只显示前几个字符 样本。json是200000个字符,当我在控制台上打印变量时,只打印前3756个字符。通过控制台打印的字符是否有任何限制。日志 完整数据保存在样本变量

  • 我用Retorfit2.0开发了android应用程序。我在我们的应用程序中使用tweeter。我正在从url获取json数组格式的数据,当签入浏览器时。我在我的应用程序中得到响应,比如代码:200OK,而响应类似于:repoces@012345,打印为原始数据。如何将响应打印为数组格式。

  • 问题内容: 我有一个JSON文件,我想把它打印成一团糟。在Python中最简单的方法是什么? 我知道PrettyPrint带有一个“对象”,我认为它可以是一个文件,但是我不知道如何传递文件。仅使用文件名是行不通的。 问题答案: 该模块已经实现了一些基本的漂亮打印,其参数指定缩进多少空格: 要解析文件,请使用: