Imgur 不使用 Retrofit 2.0 返回图像数据模型
Imgur not returning Image data model using Retrofit 2.0
所以我正在开发一个 Android 应用程序,我决定对我需要的各种 API 的所有 HTTP 请求使用 Retrofit 2.0。我 运行 遇到了一个我无法调试的问题,即当我使用图像 ID 发送图像信息请求时,我只收到 200 响应,其中 link我发送了 GET 请求。使用 Postman,我得到了我正在寻找的响应(这是 Imgur 图像数据模型 JSON:https://api.imgur.com/models/image),但我似乎无法让它与 Retrofit 一起工作。
下面我附上了服务class和请求+响应。非常感谢任何信息或头脑风暴:)
界面:
public interface ImgurService
{
@GET("Image/{id}")
Call<ImgurResponse> getImageInfo(@Path("id") String id);
}
服务class实例:
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}
我已经设法解决了我的问题;缺乏睡眠。我用来反序列化从 Imgur API 返回的 JSON 的 ImgurResponse 不正确。我返回的响应包含 success
、status
和 data
,其中 data
包含我要解析的信息。没有意识到我的错误,因为来自调试器的 "raw response" 不包含来自 API 的实际响应。
所以我正在开发一个 Android 应用程序,我决定对我需要的各种 API 的所有 HTTP 请求使用 Retrofit 2.0。我 运行 遇到了一个我无法调试的问题,即当我使用图像 ID 发送图像信息请求时,我只收到 200 响应,其中 link我发送了 GET 请求。使用 Postman,我得到了我正在寻找的响应(这是 Imgur 图像数据模型 JSON:https://api.imgur.com/models/image),但我似乎无法让它与 Retrofit 一起工作。
下面我附上了服务class和请求+响应。非常感谢任何信息或头脑风暴:)
界面:
public interface ImgurService
{
@GET("Image/{id}")
Call<ImgurResponse> getImageInfo(@Path("id") String id);
}
服务class实例:
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}
我已经设法解决了我的问题;缺乏睡眠。我用来反序列化从 Imgur API 返回的 JSON 的 ImgurResponse 不正确。我返回的响应包含 success
、status
和 data
,其中 data
包含我要解析的信息。没有意识到我的错误,因为来自调试器的 "raw response" 不包含来自 API 的实际响应。