我是靠谱客的博主 彪壮书本,最近开发中收集的这篇文章主要介绍往resin 服务器中发送post 报 POST requires content-length,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目前项目在开发环境使用的是tomcat  预发布环境和生产环境使用的是resin

在调用预发布中post接口中发现一直报 POST requires content-length 很是郁闷

通过查看resin源码发现一个很有意思的代码

com.caucho.server.http.HttpRequest

[java]  view plain copy
  1. public boolean initStream(ReadStream readStream, ReadStream rawRead)  
  2.     throws IOException  
  3.   {  
  4.     rawRead.setSibling(null);  
  5.   
  6.     if (getConnection().isDuplex()) {  
  7.       this._rawInputStream.init(rawRead);  
  8.       readStream.init(this._rawInputStream, null);  
  9.       return true;  
  10.     }  
  11.   
  12.     long contentLength = getLongContentLength();  
  13.   
  14.     if ((contentLength < 0L) && (257 <= getVersion()) && (getHeader("Transfer-Encoding") != null))  
  15.     {  
  16.       this._chunkedInputStream.init(rawRead);  
  17.       readStream.init(this._chunkedInputStream, null);  
  18.       return true;  
  19.     }  
  20.   
  21.     if (contentLength >= 0L) {  
  22.       this._contentLengthStream.init(rawRead, contentLength);  
  23.       readStream.init(this._contentLengthStream, null);  
  24.   
  25.       return true;  
  26.     }  
  27.     if (getMethod().equals("POST")) {  
  28.       this._contentLengthStream.init(rawRead, 0L);  
  29.       readStream.init(this._contentLengthStream, null);  
  30.   
  31.       throw new BadRequestException("POST requires content-length");  
  32.     }  
  33.   
  34.     this._contentLengthStream.init(rawRead, 0L);  
  35.     readStream.init(this._contentLengthStream, null);  
  36.   
  37.     return false;  
  38.   }  

从这个方法中可以看出只要前面的3个条件没有进去直接到第4个条件时只要是post请求直接抛异常

处理方式直接在发送http请求时在header中加上

Transfer-Encoding = utf-8


以上只是自己碰到这个问题的一个处理方式。

欢迎访问我的技术群425783133

最后

以上就是彪壮书本为你收集整理的往resin 服务器中发送post 报 POST requires content-length的全部内容,希望文章能够帮你解决往resin 服务器中发送post 报 POST requires content-length所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部