美文网首页
解决 Retrofit response.body() on a

解决 Retrofit response.body() on a

作者: blossom_6694 | 来源:发表于2018-05-25 15:01 被阅读0次

    在使用Retrofit时,我们一般使用的是GsonConverterFactory转换器。但是有时候后台会返回为空的response。
    app端会返回response.body() on a null object reference 错误。

      @GET("empty")
        Observable<Void> testEmpty();
    

    解决方案:

    @GET("empty")
        Observable<ResponseBody> testEmpty();
    

    亲测有用。

     @Override
        public void viewDidCreated() {
            BaseHttpMethod.getInstance().create(BillService.class)
                    .testEmpty()
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(CommonSubscribe.newInstanceWithOutProgress(this, this::testEmptySucceed));
        }
    
        private void testEmptySucceed(ResponseBody response) {
            LogUtil.i("test", "success");
        }
    
    I/okhttp: <-- 200 http://192.168.1.78:8080/empty-response/empty (43ms)
    I/okhttp: Content-Type: text/plain;charset=UTF-8
    I/okhttp: Content-Length: 0
    I/okhttp: Date: Fri, 25 May 2018 07:08:53 GMT
    I/okhttp: <-- END HTTP (0-byte body)
    D/OpenGLRenderer: Enabling debug mode 0
    I/test: success
    

    相关文章

      网友评论

          本文标题:解决 Retrofit response.body() on a

          本文链接:https://www.haomeiwen.com/subject/mqfujftx.html