Android开发经验谈Android开发Android开发

解决retrofit2.adapter.rxjava.HttpE

2018-05-26  本文已影响45人  huangandroid

解决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();
        }

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

上一篇下一篇

猜你喜欢

热点阅读