Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Rxjava2的改型2发送GET请求,获取空对象_Android_Retrofit2 - Fatal编程技术网

Android 使用Rxjava2的改型2发送GET请求,获取空对象

Android 使用Rxjava2的改型2发送GET请求,获取空对象,android,retrofit2,Android,Retrofit2,我知道以前有几个人问过这个问题,但我试过这些答案。我是Android新手。一切看起来都很好,但我不明白为什么我会得到一个空的对象?有人能告诉我这件事吗 接口: public interface CryptoAPI { @GET("ActivityForTestingPurposeOnly/") io.reactivex.Observable<List<Stream>> getData(@Query("Row") String Row,

我知道以前有几个人问过这个问题,但我试过这些答案。我是Android新手。一切看起来都很好,但我不明白为什么我会得到一个空的对象?有人能告诉我这件事吗

接口:

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",
            ...
        }
    ]
}