• 设置响应头Content-Length后前端JSON parse error


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

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

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

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

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

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

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

     完美解决

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

  • 相关阅读:
    初中几何
    角平分线导致的三角形内外角关系
    解方程
    初中|数学题目整理
    求一次函数解析式
    整式的四则运算
    分式方程
    做辅助线的方法
    线段相等的证明思路
    python2.7安装sqlite3模块
  • 原文地址:https://www.cnblogs.com/guanghe/p/14299090.html
Copyright © 2020-2023  润新知