Android 使用Rxjava2的改型2发送GET请求,获取空对象
我知道以前有几个人问过这个问题,但我试过这些答案。我是Android新手。一切看起来都很好,但我不明白为什么我会得到一个空的对象?有人能告诉我这件事吗 接口:Android 使用Rxjava2的改型2发送GET请求,获取空对象,android,retrofit2,Android,Retrofit2,我知道以前有几个人问过这个问题,但我试过这些答案。我是Android新手。一切看起来都很好,但我不明白为什么我会得到一个空的对象?有人能告诉我这件事吗 接口: public interface CryptoAPI { @GET("ActivityForTestingPurposeOnly/") io.reactivex.Observable<List<Stream>> getData(@Query("Row") String Row,
public interface CryptoAPI {
@GET("ActivityForTestingPurposeOnly/")
io.reactivex.Observable<List<Stream>> getData(@Query("Row") String Row,
@Query("Top") String Top,
@Query("AppID") String appid);
最后,我得到响应的方法是:
public void getStreams(){
CryptoAPI.RetrofitAdapter.newAPICreator()
.getData("0", "20", "73")
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Stream>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(Stream model) {
arrayList.add(model);
Toast.makeText(getApplicationContext(),
"Size: " + arrayList.size(),
Toast.LENGTH_SHORT);
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onComplete() {
}
});
}
> here is my
@SerializedName("ID")
@Expose
private Integer iD;
@SerializedName("Rating")
@Expose
private Integer rating;
@SerializedName("SectionID")
@Expose
private Integer sectionID;
@SerializedName("ContentID")
@Expose
private Integer contentID;
public void getStreams(){
CryptoAPI.RefughtAdapter.newAPICreator()
.getData(“0”、“20”、“73”)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.订阅(新观察员){
@凌驾
认购的公共无效(一次性d){
}
@凌驾
公共void onNext(流模型){
arrayList.add(模型);
Toast.makeText(getApplicationContext(),
“大小:”+arrayList.Size(),
烤面包片(长/短);
}
@凌驾
公共无效申报人(可丢弃的e){
e、 printStackTrace();
}
@凌驾
未完成的公共空间(){
}
});
}
>这是我的
@序列化名称(“ID”)
@暴露
私有整数iD;
@序列化名称(“评级”)
@暴露
私人整数评级;
@SerializedName(“SectionID”)
@暴露
私有整数部分ID;
@SerializedName(“ContentID”)
@暴露
私有整数contentID;
摘要 我测试了你给出的端点,效果很好
curl-X GET\
'http://m.ilmkidunya.com/api/sectionactivity/sectionactivity.asmx/ActivityForTestingPurposeOnly?Row=0&Top=20&AppId=73' \
-H'邮递员代币:f64fdf34-4dbb-4201-93e9-e4c95fe7064d'\
-H'缓存控制:无缓存'
回报是
{
"stream": [
{
"ID": 583750,
"Rating": 0,
"SectionID": 59,
"ContentID": 0,
"SectionName": "Comments",
"SortOrder": 2,
"Title": "ICS",
...
}
]
}
出了什么问题
您已经使用了Observable
,列表
类表示您期望一个数组作为根json响应
你需要做什么
已更新(基于用户问题更新)
创建一个名为Stream
的对象,如下所示
公共类流{
@序列化名称(“流”)
List streamItems;//您是否尝试在浏览器或邮递员上点击api以检查其是否真的是服务器问题?500内部服务器错误
显示此错误来自服务器端,而不是您的端。是的,我得到了准确的响应。解决了错误URL的问题,现在得到了此错误。听起来是什么就像你期待一个数组[…]
但是得到一个对象{…}
。检查你收到的JSON并相应地调整你的代码。
{
"stream": [
{
"ID": 583750,
"Rating": 0,
"SectionID": 59,
"ContentID": 0,
"SectionName": "Comments",
"SortOrder": 2,
"Title": "ICS",
...
}
]
}