使用httpservletrequest截取http帖子

时间:2017-08-01 05:07:06

标签: java servlets post apache-httpclient-4.x

我要将http post请求重定向到另一台服务器(只是更改url和一些标头)并为此目的使用Servlet。 在Servlet中,我使用HttpClient发送请求并获得响应。 问题是:这些操作会将整个帖子请求发送给目标吗? :

  1. 将httpServletRequest标头复制到httpClient请求

  2. 然后将httpServletRequest #inputStream放在请求实体中,如下所示:

    HttpEntity entity = new InputStreamEntity(httpServletRequest.getInputStream(),someContentType);

  3. 我的意思是request = headers +输入流?如果没有,还应该复制什么?

1 个答案:

答案 0 :(得分:0)

关于术语的同一页面:

  1. 重定向是指将请求发起者发送到另一个URL。这不是你要解释的。
  2. 转发是关于转到另一个内部网址而没有请求发起人知道任何事情。从发起人的角度来看,回应来自它要求的网址。这不是您的示例代码尝试做的事情
  3. 您的代码在其他地方作为原始发件人请求处理的一部分进行处理。这是你的代码似乎通过使用像apache httpclient这样的特定框架来做的事情。但是你试图通过重用原始请求的输入流来实现这一点,你不应该这样做。
  4. 如果您想为请求添加标头,则重定向不是一个选项。 如果你想转发到另一个外部网址,转发不是一个选项。

    因此,您需要在原始请求处理过程中对其他站点执行新的http请求。但您必须处理原始请求以提取您需要的任何信息(不要尝试重用输入流)。