V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
G0D
V2EX  ›  Android

怎么查找 Retrofit 请求失败的原因呢

  •  
  •   G0D · 2016-08-31 11:14:57 +08:00 · 12301 次点击
    这是一个创建于 3040 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请求失败,又不知道什么原因,该怎么解决

    private void getData() {
        String baseUrl1 = "http://demo.wp-api.org/";
        Retrofit retrofit1 = new Retrofit.Builder()
                .baseUrl(baseUrl1)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        ArticleaaApi articleaaApi=retrofit1.create(ArticleaaApi.class);
    
        Call<ArticleBean> articleBeanCall = articleaaApi.getArticle();
        articleBeanCall.enqueue(new Callback<ArticleBean>() {
            @Override
            public void onResponse(Call<ArticleBean> call, Response<ArticleBean> response) {
                System.out.println("S");
            }
            @Override
            public void onFailure(Call<ArticleBean> call, Throwable t) {
                System.out.println("F");
            }
        });
    }
    

    API :

    public interface ArticleaaApi {
        @GET("wp-json/wp/v2/posts")
        Call<ArticleBean> getArticle();
    }
    
    第 1 条附言  ·  2016-08-31 13:24:57 +08:00

    感谢各位,找到异常了:

    java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
    

    对于这种带数组的 json 数据该怎么用 Gson 解析呢? http://demo.wp-api.org/wp-json/wp/v2/posts

    第 2 条附言  ·  2016-08-31 16:05:38 +08:00

    搞定了,谢谢大家! 有时候就是这样子,这么明显的错误自己就是没有看出来。

    public interface ArticleaaApi {
    @GET("wp-json/wp/v2/posts")
    Call<List<ArticleBean>> getArticle();
    }
    
    8 条回复    2016-09-01 18:01:15 +08:00
    kamikat
        1
    kamikat  
       2016-08-31 11:34:49 +08:00
    Log.e("F", t);
    sjn9588
        2
    sjn9588  
       2016-08-31 11:51:30 +08:00
    t.getMessage()
    Override
        3
    Override  
       2016-08-31 12:12:35 +08:00
    我仿佛又听到有人在背后偷偷 @我
    sunus
        4
    sunus  
       2016-08-31 13:03:02 +08:00
    直接 attach retrofit 源码打断点呗
    baozijun
        5
    baozijun  
       2016-08-31 14:28:10 +08:00
    gson 不能转换,可能是你的 bean 有问题,或者返回的信息解析成功,把 response 信息打印出来看一下。
    zarvin
        6
    zarvin  
       2016-08-31 15:12:21 +08:00
    给 bean 套一个 list
    jinhan13789991
        7
    jinhan13789991  
       2016-08-31 15:23:29 +08:00
    就正常的 List<Data> 啊, gson 有自动获取 type 树,然后转化的
    x9498
        8
    x9498  
       2016-09-01 18:01:15 +08:00
    daibi
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   925 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 21:46 · PVG 05:46 · LAX 13:46 · JFK 16:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.