拜托,我有麻烦了。我想获取web api(news.api
)上的所有实体
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;
出现此异常是因为您在post
类中使用了list
这意味着您希望source
作为数组
但在JSON
响应中它是对象
。因此必须将其更改为对象
。
为源对象创建一个类,如下所示。
public class Source {
private String id;
private String name;
}
现在您必须更改post
类中的source
类型,如下所示
@SerializedName("source")
//private List<String> source;
private Source source; // source is an object in your response json
希望对你有帮助。快乐编码
我正在尝试使用改版在我的应用程序上实现用户注册,但是我一直得到这个错误不确定是什么错误,java.lang.IllegalStateException:应该是BEGIN_OBJECT,但应该是BEGIN_ARRAY 这是邮递员的回复 } 我有两个模型类User模型类 和我的register类 如果可能的话有人帮我实现Kotlin coroutines
我正在尝试使用改版在我的应用程序上实现登录,但是我一直得到这个错误不确定是什么错误,java.lang.IllegalStateException:应该是BEGIN_OBJECT,但应该是BEGIN_ARRAY 这是邮递员的回复 和我的登录类
我已经在StackOverflow中多次看到这个问题。但这些答案没有解决我的问题,我对reverfit是新的。我将reverfit用于我的登录接口。我将发送用户名、密码,然后响应将是数组中的两个令牌。当我尝试登录时,日志猫显示 请求 发帖:表单-已注册 模型类 UserResponse.java 接口 然后我想要获得。 我已按如下所示编辑并尝试获取。然后在com.android.app.myapp
有改装API 附注。很抱歉可能的语法错误。