所以我正在开发一个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}
答案 0 :(得分:0)
我已经设法解决了我的问题;睡眠不足。我用来反序列化我从Imgur API返回的JSON的ImgurResponse是不正确的。我收到的回复包含success
,status
和data
,data
包含我要解析的信息。由于&#34;原始响应&#34;没有意识到我的错误。来自调试器不包含API的实际响应。