zoukankan      html  css  js  c++  java
  • 设置响应头Content-Length后前端JSON parse error

      今天需要写一个第三方请求的过滤器,即前端请求后台,后台使用restTemplate请求三方接口,然后封装响应头和响应体返回给前端。

      可是,当写完代码,在前端请求后一看

       响应信息显示不全,这直接让我想到了在后端封装中设置了Content-Length这个响应头,于是看代码

       貌似一点问题都没有啊!再看前端接收到的响应头

       24个字符?看看实际响应结果是多少字符呢?

       嗯?按理说向后台要24个字符,肯定能把16个字符都取出来啊。再看后台,打断点调试

       发现结果字符串是一个长度为48的数组,这时猛然想起上学时C++老师说过读写文件可以使用字符流或字节流,没错,那Content-Length一定要设置字节数组的长度了(推测HTTP传输是按字节流),而java的String.length()默认是返回字符数组的字符数,怎么才能获取其字节流长度呢?

     完美解决

    不过有一点,为什么getBytes()得到的是32,而debug界面显示的是48,猜测debug显示的不是字符串的字节流数组,而是字符串这个类的一些基本信息。

  • 相关阅读:
    CentOS安装系统时硬盘分区建议
    Linux下的gpt分区
    如何解决Win10账户没有了管理员权限
    redis数据的清空以及回滚
    禅道的作用以及安装
    Java数组的内存图
    Java中的内存划分
    进制
    Java数组
    Java方法的重载(Overload)
  • 原文地址:https://www.cnblogs.com/guanghe/p/14299090.html
Copyright © 2011-2022 走看看