php 代理中的 Servlet getParts 为空,而不是直接来自 myform

Servlet getParts empty from php proxy and not directly from myform

正如我在 中所说,我正在开发 php proxy.Actually 我有一个带有注释的 servlet:

@MultipartConfig
public class MyServlet extends HttpServlet {

在 doPost 中我还有:

  Collection<Part> lesParts = request.getParts();

奇怪的是,当通过我的代理访问时,我总是得到一个空的 Collection,而当直接从我的表单访问时,我总是得到一个正确的东西 也就是说: <form name="mon-formulaire1" id="proxyform" action="newPrxi.php?proxy_url=http://localhost:8888/testServlet/myservlet.html" method="post" enctype="multipart/form-data" > 无效 和 <form name="mon-formulaire1" id="proxyform" action="http://localhost:8888/testServlet/myservlet.html" method="post" enctype="multipart/form-data" > 没问题。 实际上,我正在使用 Vstudio(端口 30645)上的 php 和 Eclipse(端口 8888)下的 Tomcat 7 上的 servlet 在我的本地主机上工作。 我使用 request.getInputStream(); 并使用 Enumeration headerNames = request.getHeaderNames(); 遍历 headers 并且我看不出 ok 的情况(直接来自表单)和 ng 的情况(通过代理人)。所有这些代码通常都被注释以避免在读取流后出现空请求.... 我的表单有两个输入文本和两个文件输入元素,当我上传文件时它不会改变任何东西(当零件列表不为空时文件保存完好)。 我的headers如下:

Key: content-type, Value: multipart/form-data; boundary=----WebKitFormBoundaryHEJ3XuT0gdC8RG4X
Key: connection, Value: keep-alive
Key: accept-language, Value: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Key: host, Value: localhost:8888
Key: accept, Value: text/plain, */*; q=0.01
Key: content-length, Value: 105639
Key: origin, Value: http://localhost:30645
Key: user-agent, Value: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
Key: accept-encoding, Value: gzip, deflate
Key: referer, Value: http://localhost:30645/index.html?XDEBUG_SESSION_START=76F0F204

非常欢迎任何帮助....:)

如果 servlet 在 运行 代理后面时无法 return 多部分请求的部分,最可能的解释是代理添加或删除了导致请求不正确或无法解析的内容。

正如在评论对话中检测到的那样,事实确实如此。