2013-01-10 25 views
10

我在project.The Web服務調用書面REST Web服務可能來自不同的machine.so我需要找出通過REST Web服務的IP地址。如何在java中使用RESTful Web服務獲取遠程/客戶端IP地址?

從這個linkrequest.getRemoteAddr()使用這個。

但我不能使用getRemoteAddr()。因爲我的請求和響應是xml格式。

我已經使用POST方法在REST service.Tomcat server.I有發送請求作爲XML格式。

我怎樣才能獲取IP地址?

+0

你能告訴你使用的是什麼技術/框架嗎? – TheWhiteRabbit

回答

31

假設使用的是JAX-RS:

@GET 
Produces("application/xlm") 
public String getData(@Context HttpServletRequest request){ 
    String ip = request.getRemoteAddr(); 
} 

@Context註釋允許你注入的

  • javax.ws.rs.core.HttpHeaders情況下,
  • javax.ws .rs.core.UriInfo,
  • javax.ws.rs.core.Request,
  • javax.servlet.HttpServletRequest,
  • javax.servlet.HttpServletResponse,
  • javax.servlet.ServletConfig,
  • javax.servlet.ServletContext,和
  • javax.ws.rs.core.SecurityContext對象。
0

無論請求的格式(或內容類型)如何(在本例中爲xml) IP地址隨您的請求提供,通過該請求提交xml有效內容(請求)。 因此,檢查您的請求是最好的方法。

+0

您的請求數據(xml)始終封裝在HTTP請求中 – TheWhiteRabbit

0

即使您的請求採用xml/json格式,您將使用request.getRemoteAddr();獲得遠程/客戶機地址,因爲IP地址位於HTTP Request header

+0

我無法通過xml請求對象獲取getRemoteAddr()。 – Ami

相關問題