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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,726评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • To 黑君 我不知会遇见你,心碎的如此轻而易举 庆幸莫名的分离,让我能重新找回自己 回忆真的很甜蜜,从你睫毛落下...
    HP派派阅读 288评论 2 3
  • 风粉碎晚霞,雨凋落天涯 我等在花下,把酒问归期 愁思三千消散了你的身影 断肠轻吟我离时你送的曲 现在的我在东篱之边...
    一张孙艺宁阅读 129评论 0 0
  • 2016.4.18 晴 阳光极好 来到这里两三天了,心情渐渐平复,生活开始进入自己设定的秩序,对周遭有了一定的了解...
    卜白阅读 479评论 0 0