拜托,我有问题。我想获取 web api( news.api)上的所有实体
但我在响应时遇到执行错误retrofit:
错误:java.lang.IllegalStateException:预期为 BEGIN_ARRAY,但在第 1 行第 57 列为 BEGIN_OBJECT
感谢您的帮助
public interface ApiService {
@GET("top-headlines")
Call<ResponseNewsApi> getResponseNewsApi(@Query("sources") String source, @Query("apiKey") String apiKey);
}
public class ResponseNewsApi {
@SerializedName("status")
private String status;
@SerializedName("totalResults")
private String totalResults;
@SerializedName("articles")
private List<Post> articles;
}
public class Post {
@SerializedName("source")
private List<String> source;
@SerializedName("author")
private String author;
@SerializedName("title")
private String title;
@SerializedName("description")
private String description;
@SerializedName("url")
private String url;
@SerializedName("urlToImage")
private String urlToImage;
@SerializedName("publishedAt")
private String publishedAt;
@SerializedName("content")
private String content;
}
service.getResponseNewsApi(source,apiKey).enqueue(new Callback<ResponseNewsApi>() {
@Override
public void onResponse(Call<ResponseNewsApi> call, Response<ResponseNewsApi> response) {
Log.d(TAG, "onResponse response:: " + response);
if (response.body() != null) {
data.setValue(response.body());
Log.d(TAG, "posts total result:: " + response.body().getTotalResults());
Log.d(TAG, "posts size:: " + response.body().getArticles().size());
Log.d(TAG, "posts title pos 0:: " + response.body().getArticles().get(0).getTitle());
}
}
@Override
public void onFailure(Call<ResponseNewsApi> call, Throwable t) {
data.setValue(null);
Log.e(TAG,"Error get enqueue Retrofit");
Log.e(TAG,"Error: "+t.getMessage());
}
});
return data;
慕标5832272
相关分类