Imgur没有使用Retrofit 2.0返回图像数据模型

时间:2015-11-13 02:11:33

标签: java android retrofit

所以我正在开发一个Android应用程序,我决定使用Retrofit 2.0来处理我需要的各种API的所有HTTP请求。我遇到了一个我无法调试的问题,即当我使用图像ID发送图像信息请求时,我只是通过我发送GET请求的链接得到200响应。使用Postman,我得到了我正在寻找的响应(这是Imgur图像数据模型JSON:https://api.imgur.com/models/image)但我似乎无法使用Retrofit。

下面我附上了服务类和请求+响应。非常感谢任何信息或头脑风暴:)

界面:

public interface ImgurService
{
    @GET("Image/{id}")
    Call<ImgurResponse> getImageInfo(@Path("id") String id);
}

服务类实例:

public static ImgurService getInstance()
{
    if (IMGUR_SERVICE == null) {

        Interceptor interceptor = new Interceptor()
        {
            @Override
            public Response intercept(Chain chain) throws IOException
            {
                Request newRequest = chain.request().newBuilder().addHeader("Authorization", CLIENT_ID).build();
                return chain.proceed(newRequest);
            }
        };

        OkHttpClient client = new OkHttpClient();
        client.interceptors().add(interceptor);

        Retrofit RETROFIT = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(client)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        IMGUR_SERVICE = RETROFIT.create(ImgurService.class);
    }

    return IMGUR_SERVICE;
}

请求:

Request{method=GET, url=https://api.imgur.com/3/Image/CgZzfSd, tag=Request{method=GET, url=https://api.imgur.com/3/Image/CgZzfSd, tag=null}}

原始回复:

Response{protocol=http/1.1, code=200, message=OK, url=https://api.imgur.com/3/Image/CgZzfSd}

1 个答案:

答案 0 :(得分:0)

我已经设法解决了我的问题;睡眠不足。我用来反序列化我从Imgur API返回的JSON的ImgurResponse是不正确的。我收到的回复包含successstatusdatadata包含我要解析的信息。由于&#34;原始响应&#34;没有意识到我的错误。来自调试器不包含API的实际响应。