解决retrofit2.adapter.rxjava.HttpE

作者: huangandroid | 来源:发表于2018-05-26 22:49 被阅读45次

    解决retrofit2.adapter.rxjava.HttpException: HTTP 400 错误

    前言

      最近项目中遇到一件怪事,在get请求中发现没有数据,在debug时候发现居然爆了一个retrofit2.adapter.rxjava.HttpException: HTTP 400错误。经过查阅资料发现400 请求出错
      由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。但是我把请求的完整参数发到postman中请求发现没有问题。正在觉得怪异的时候,请求参数中|这个特殊字符串引起了我的注意。
    通过在OKhttp 拦截器中打印出本次请求路径发现,所有的参数都是被编码了,但是|这个特殊字符却没有编码。

       String path = "";
            try {
                LogUtils.error("path" + departmentBean.getPath());
                path = new String(departmentBean.getPath().getBytes(), "utf-8");
                path = URLEncoder.encode(path, "UTF-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
    

    通过对路径参数也就是包含 | 特殊字符的参数进行编码过后问题就解决了。

    相关文章

      网友评论

        本文标题:解决retrofit2.adapter.rxjava.HttpE

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