簡體   English   中英

使用httpservletrequest攔截http帖子

[英]intercepting http post using httpservletrequest

我將把http post請求重定向到另一台服務器(只是更改url和一些標頭),並為此使用Servlet。 在Servlet中,我使用HttpClient發送請求並獲取響應。 問題是:這些操作是否會將整個發帖請求發送給目標?

  1. 將httpServletRequest標頭復制到httpClient請求中

  2. 然后將httpServletRequest#inputStream放在請求實體中,如下所示:

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

我的意思是請求=標頭+輸入流? 如果沒有,還應該復制什么?

關於術語只是在同一頁上:

  1. 重定向是關於將請求發起者發送到另一個URL。 這不是您要解釋的。
  2. 轉發是關於轉到另一個內部URL,而請求發起者不知道任何內容。 從發起者的角度來看,響應來自其請求的URL。 這不是您的示例代碼正在嘗試執行的操作
  3. 您的代碼在其他地方進行請求,作為發起者請求處理的一部分。 這是您的代碼似乎通過使用諸如apache httpclient之類的特定框架所做的事情。 但是您嘗試通過重用原始請求中的inputstream來這樣做,您不應該這樣做。

如果要向請求添加標頭,則重定向不是afaik選項。 如果要轉發到另一個外部URL,則不能選擇轉發。

因此,作為原始請求處理的一部分,您需要向另一個站點發出新的http請求。 但是您必須處理該原始請求以提取所需的任何信息(不要嘗試重用inputstream)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM