如何计算http请求中Content-Length的值
答案:2 悬赏:20 手机版
解决时间 2021-03-23 22:03
- 提问者网友:缘字诀
- 2021-03-23 03:41
如何计算http请求中Content-Length的值
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-03-23 03:46
content length是指报头以外的内容长度。 一般的服务器实现中,超过这个长度的内容将被抛弃。 不会产生新post。 如果短于内容长度,协议要求服务器返回400错误信息Bad Request(不正确的请求)的。 POST是把键-值对放在内容中传递,受上述规则制约。
全部回答
- 1楼网友:迷人又混蛋
- 2021-03-23 04:07
在j2me的开发中,我遇到了一个问题,我的http请求中没有content-length属性。而服务器端需要这个属性的值。
首先说解决方法:
将程序中的flush语句去掉即可。
根据查询各方资料,我了解到:
一般情况下,http请求头中会包含content-length属性。它的值是发送的内容的长度。接收者(浏览器或者服务器端)会等内容全部传输完毕,再根据content-length值来取内容。但是,如果设了transfer-encoding为chunked,http请求头中就不会有content-length属性了。因为transfer-encoding为chunked,就意味着,内容会被分成一块一块的发送,接收者也就不需要等到内容都传输完毕了才读取其中的内容。这种情况下,content-length是无法被计算出来,所以也就没有了这个属性。
有两种方法可以使得http请求用chunked方式传输内容。
一种是设定server的io buffer长度让server自动flush buffer中的内容。
另一种是手动的调用io中的flush函数。如java中用out.flush();
所以,如果你的http请求用了chunked编码,而这并不是你想要的,那你就把程序中的flush语句去掉,应该就没有问题了。
这样处理了之后,在eclipse下确实是没有问题了。但是一模一样的代码,在netbeans下还是chunked模式。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯