2011-12-20 207 views
1

我正在使用Apache HttpClient与WS连接。所有的工作都很好,但是当应用程序试图发送一个大尺寸的帖子时,它会打破。Apache HttpClient UrlEncodedFormEntity限制大小

我unsing HttpClint这样的:

  • 做一个XML的张贴到REST WS
  • 这个职位是一个字符串,字符串被映射为XML的对象。
  • 我使用UrlEncodedFormEntity到XML参数传递给url

当HttpClient的发送contetn,从WS侧,与XML的参数为空。 我感谢xml发送时,并确定,我的意思是XML正确创建。

如果xml的大小较小,那么它工作正常。 它的行为就像是如果HttpClient具有限制大小的帖子或UrlEncodedFormEntity做。

有什么想法吗? 谢谢。

回答

0

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

0

如果您发布XML文件,则不应使用UrlEncodedFormEntity,应将FileEntity与XML文件一起使用。这样你可以避免UrlEncodedFormEntity限制。

+0

其实我创建了一个带有XML结构的字符串,但不是一个文件本身,但是我可以将它作为文件发送以避免这个问题。我会尝试这种方式。谢谢 – aivaldi 2011-12-21 15:39:34

+0

如果你已经有字符串,你可以使用StringEntity而不是FileEntity。 – 2011-12-21 16:41:57

0

UrlEncodedFormEntity不会对内容长度强加任何限制,但许多HTTP服务器实际上做,如“应用程序/ x WWW的形式进行了urlencoded”含量通常被在存储器缓冲在服务器端。

+0

好的,谢谢你的信息。我将HTTP Server配置为不受限制,但无论如何,问题仍然存在。 – aivaldi 2011-12-21 15:41:07