【发布时间】:2020-08-14 16:09:24
【问题描述】:
我正在尝试使用改造从网络访问数据(数据是 gson 的形式,我正在使用 WordPress REST API),但无法访问。它向我显示了一个错误,例如 data is null 看起来改造无法找到数据,但一切都很好......看起来代码很好,我不知道如何解决这个问题。请帮助我,我是一名新开发人员.. 我需要 3 天时间
每当我调用 getRetrofit() 方法时,它都可以正常工作...但是当我调用 getImageRetrofit() 时,看起来此方法不起作用...此方法返回 null 值,如 logcat 所示: ImageInfo: info: null
private void getRetrofit() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitArrayApi service = retrofit.create(RetrofitArrayApi.class);
Call<List<WPPost>> call = service.getPostInfo();
call.enqueue(new Callback<List<WPPost>>() {
@Override
public void onResponse(Call<List<WPPost>> call, Response<List<WPPost>> response) {
Log.e("Latest","response: "+response.body());
for (int i=0; i<response.body().size(); i++)
{
Log.e("main ","title "+response.body().get(i).getTitle().getRendered() + " " +
response.body().get(i).getId() );
String tempDate = response.body().get(i).getDate();
tempDate = tempDate.replace("T"," ");
String tempImageHref = response.body().get(i).getLinks().getWpFeaturedmedia().get(0).getHref();
Log.e("Href", "onResponse: "+tempImageHref);
String link = response.body().get(i).getLink();
Log.e("PostLink",link);
getImageRetrofit(tempImageHref);
list.add(new LatestModel(
response.body().get(i).getTitle().getRendered(),
tempDate,
tempImageHref,
LatestModel.IMAGE_TYPE,
response.body().get(i).getLink()
)
);
}
adapter.notifyDataSetChanged();
}
@Override
public void onFailure(Call<List<WPPost>> call, Throwable t) {
t.printStackTrace();
}
});
}
private void getImageRetrofit(String ImageHref) {
Log.e("getImageRetrofit","called "+ImageHref);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build();
RetrofitArrayApi service = retrofit.create(RetrofitArrayApi.class);
Call<List<WPPostImage>> callImage = service.getImageInfo(ImageHref);
callImage.enqueue(new Callback<List<WPPostImage>>() {
@Override
public void onResponse(Call<List<WPPostImage>> call, Response<List<WPPostImage>> response) {
Log.e("ImageInfo","info: "+response.body());
}
@Override
public void onFailure(Call<List<WPPostImage>> call, Throwable t) {
Log.e("Link Failed: ",": t.printStackTrace()" );
}
});
}
这是我的 RetrofitArrayApi 接口:
public interface RetrofitArrayApi {
@GET("wp-json/wp/v2/posts?per_page=4")
Call<List<WPPost>> getPostInfo();
@GET("{id}")
Call<List<WPPostImage>> getImageInfo(@Path("id") String ImageHref); }
【问题讨论】:
-
当您从浏览器或邮递员等访问
getImageInfoapi 时,后端会返回什么? -
此链接存储:in temImageHref:mubashirsaddique.com/wp-json/wp/v2/media/1780
-
在 logcat 中显示如下:E/ImageInfo: info: null...我也仔细检查了我的 pojo 模型,这也是正确的
-
这是我的baseurl:private String baseUrl = "mubashirsaddique.com";
-
如果
temImageHref等于 mubashirsaddique.com/wp-json/wp/v2/media/1780,service.getImageInfo(ImageHref)向 baseurl +temImageHref发出请求 = mubashirsaddique.com/mubashirsaddique.com/wp-json/wp/v2/media/1780
标签: java android wordpress retrofit