请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

网络框架post请求有点问题

服务器要以application/json的方式post请求
我在这边这样调用
RxRestClient.create()
                .lastUrl(BaseConstant.URL_CATEGORY)
                .raw("{\"parentId\":\"0\"}")
                .build().post()

在RxRestClient类里面,下面注释部分的代码会报空指针异常

public final Observable<String> post() {
        if (mBody == null) {
            return request(HttpMethod.POST);
        } else {
        //    if (!mParams.isEmpty()) {
       //         throw new RuntimeException("params must be null!");
      //      }
            return request(HttpMethod.POST_RAW);
        }
    }

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.WeakHashMap.isEmpty()' on a null object reference

请问下源码是不是有问题,

另外看到评论里面有群可以加,能麻烦老师拉下群吗,不知道自己下载的源码是否是最新的 QQ:445266487

正在回答

1回答

使用方法不对啦,你想一般的post请求会有两种形式,你要记得啊,是两种形式,一种是以form data的形式的,还有一种呢,就是json请求体内包含的一系列的二进制的数据,那么如果你刚才我看到你的数据,其实是一些form对他,所以你直接用那params直接往里add的就可以了。

0 回复 有任何疑惑可以回复我~
  • 提问者 默小铭 #1
    可能有点没看懂老师说的,我这边服务器只接受json的请求体,默认的post使用了@FormUrlEncoded,也就是说只要调用post请求,都会以表单的形式提交,最后我还是以我上面的方案,然后将报异常的地方多做一个判空处理解决了,不过还是感谢老师回复
    回复 有任何疑惑可以回复我~ 2019-03-14 19:56:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信