Java Apache HttpClient UrlEncodedFormEntity限制大小

Java Apache HttpClient UrlEncodedFormEntity限制大小,java,apache,httpclient,tomcat6,Java,Apache,Httpclient,Tomcat6,我正在使用ApacheHttpClient连接WS。所有这些都可以正常工作,但当应用程序试图发送一个大尺寸的帖子时,它会崩溃 我正在按如下方式卸载HttpClint: 将XML发布到REST WS 这篇文章是一个字符串,字符串是一个映射为XML的对象 我使用UrlEncodedFormEntity将xml参数传递给url 当HttpClient从WS端发送内容时,带有XML的参数为空。 我检查了发送xml的时间是否正确,我的意思是正确创建了xml 如果xml的大小较小,那么它就可以正常工作。

我正在使用ApacheHttpClient连接WS。所有这些都可以正常工作,但当应用程序试图发送一个大尺寸的帖子时,它会崩溃

我正在按如下方式卸载HttpClint:

  • 将XML发布到REST WS
  • 这篇文章是一个字符串,字符串是一个映射为XML的对象
  • 我使用UrlEncodedFormEntity将xml参数传递给url
当HttpClient从WS端发送内容时,带有XML的参数为空。 我检查了发送xml的时间是否正确,我的意思是正确创建了xml

如果xml的大小较小,那么它就可以正常工作。 它的行为就像HttpClient对post或UrlEncodedFormEntity有限制大小一样

有什么想法吗?
谢谢。

如果您发布的是XML文件,则不应使用UrlEncodedFormEntity,而应将FileEntity与XML文件一起使用。通过这种方式,您可以避免UrlEncodedFormEntity限制。

UrlEncodedFormEntity
不会对内容长度施加任何限制,但许多HTTP服务器实际上会这样做,因为“application/x-www-form-urlencoded”内容通常在服务器端的内存中得到缓冲

感谢您的帮助,解决方案很简单:限制在Tomcat中,因为默认情况下maxPostSize参数是2MB(我的意思是如果它不存在于server.xml中的连接器标记中),所以我将其更改为15Mb。我找到了带有HTTP协议的标记连接器,并为其添加了属性maxPortSize=“15728640”!5Mb,工作正常

实际上,我正在创建一个XML结构的字符串,但不是文件本身,但是meaby我可以将其作为文件发送,以避免这个问题。我很高兴你会那样做。谢谢如果您已经有了字符串,您可以使用StringEntity而不是FileEntity。好的,谢谢您提供的信息。我将HTTP服务器配置为没有限制,但无论如何,问题仍然存在。