2012-08-29 61 views
1

我不熟悉Java Servlet編程,並且有關於如何使用Servlet編程處理來自其他服務器(不是用戶的POST請求)的POST響應的問題。如何使用Servlet處理POST響應

假設我的應用程序需要諮詢另一臺服務器以處理用戶請求。我需要

  1. 發送異步POST請求(即,在請求POST體指定redirect_uri)到其它服務器;
  2. 處理來自其他服務器的POST響應;
  3. 給用戶一些結果。

我想我需要一個Servlet來處理用戶的請求和發送POST請求到其他服務器,我需要另一個servlet(因爲POST請求是異步),以處理來自其他服務器的POST響應。我的具體問題是:

  1. 什麼是送在這種情況下POST請求的最佳方式?例如,使用HttpUrlConnection

  2. 如何在Servlet中處理POST響應?它使我困惑,因爲servlet應該處理「請求」而不是「響應」,但在這種情況下,傳入的消息確實是來自其他服務器的響應POST。尤其是,如果您能指出相關的API /方法,那將非常有幫助。例如,在doPost()?如何獲得POST響應正文? (我認爲我們可以從HttpServletRequest對象中得到它)。

非常感謝!
Yue

+0

如果你等待的POST的結果呈現的東西的用戶,你應該同步做。 –

回答

0

我不明白'POST Response'這個詞。但是如果我正確理解了你的需求,可能你會談論servlet鏈接場景。

的Servlet鏈意指一個小服務程序行爲的輸出作爲輸入到 另一個servlet。 Servlet別名允許我們在使用通用servlet 別名打開URL時依次調用多個 servlet。第一個Servlet的輸出作爲輸入發送到其他Servlet 等等。來自最後一個Servlet的輸出被髮送回 瀏覽器。整個過程稱爲Servlet鏈接。

Example of Servlet Chaining

+0

其他服務器不是由我維護的。其實我誤解了協議,而其他服務器在我的Servlet發送POST請求後立即發送POST響應。所以POST請求不是異步處理的。實際上,目前沒有辦法像下面提到的ajay一樣實現異步POST請求。總之,我的誤解導致了這個「無解」問題:)對此抱歉。 – user1631973