zoukankan      html  css  js  c++  java
  • 请求头Content-Length设置不正确导致的JSON parse error

    今天无意间发现请求头的Content-Length会影响POST请求参数在服务器端的接收长度。

    场景一:未美化的请求参数发送请求,成功接收响应。此时Header里面的Content-Length长度为216。结果成功接收响应数据。

    场景二:与场景一的任何参数一致的情况下,就美化了下请求参数,导致报错了。个人理解为美化参数后,将参数添加了一下换行符和空格,导致入参数据量变大

    参照:写一个拦截器获取服务端获取的请求参数,发现参数不完整,被截取了后面部分:https://blog.csdn.net/u010173095/article/details/88026265

    发现是Content-Length导致的问题后,将Content-Length参数调大,但是发现迟迟未将请求参数发送出去。(TODO:该问题还有待深究)

    如果Content-Length不设置,则会提示缺少请求体参数(Missing request body)

    解决方式:添加一个请求头Transfer-encoding,值为Chunked的时候(接下来的body我要一块一块的传,每一块开始是这一块的大小,等我传到大小为0的块时,就没了),Content-Length可以不用设置,即使设置了也是没有生效的效果,此时成功接收到相应结果。

    结论:Content-Length设置小了会被截取,参数不完整;设置大了,会超时;经测试,Content-Length多一个数少一个数都不行,必须得精确!

  • 相关阅读:
    MAC上最好用的免费全能音乐播放器VOX 2.6.5
    Linux发行版的排行
    Linux发行版的排行
    ImageButton的背景设为透明或者半透明以及按下效果
    ImageButton的背景设为透明或者半透明以及按下效果
    软件缘-网友个人精心打造的精品软件收集
    软件缘-网友个人精心打造的精品软件收集
    滚动条
    em
    配色
  • 原文地址:https://www.cnblogs.com/qukun/p/13728662.html
Copyright © 2011-2022 走看看