gpt4 book ai didi

java - 每当我使用改造从网络访问数据时,它工作正常,但第二次无法使用改造通过网络找到数据

转载 作者:行者123 更新时间:2023-12-02 01:50:32 25 4
gpt4 key购买 nike

我正在尝试使用retrofit从网络访问数据(数据采用gson形式,我正在使用WordPress Rest API),但无法访问。它向我显示一个错误,例如数据为空,看起来像改造找不到数据,但一切都很好...看起来代码很好,但我不知道如何解决这个问题。请帮助我,我是一名新开发人员..这需要我 3 天

每当我调用 getRetrofit() 方法时,它都可以正常工作...但是当我调用 getImageRetrofit() 时,看起来这个方法将不起作用...该方法返回 null 值,如 logcat 中所示:图像信息:信息:空

   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 接口(interface):

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); }

最佳答案

您在评论中说 temImageHref: mubashirsaddique.com/wp-json/wp/v2/media/1780而且您的基本网址是 baseUrl = "mubashirsaddique.com" 。因此,您在调用 getImageInfo 时向此地址 mubashirsaddique.com/mubashirsaddique.com/wp-json/wp/v2/media/1780 发送请求。

更改您的 getPostInfo服务。它应该只返回 id(1780 在你的情况下)作为 href 值并修改 RetrofitArrayApi .

@GET("wp-json/wp/v2/media/{id}")
Call<List<WPPostImage>> getImageInfo(@Path("id") String ImageHref);

关于java - 每当我使用改造从网络访问数据时,它工作正常,但第二次无法使用改造通过网络找到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57430393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com