12

我在我的项目中编写了 Rest web 服务。web 服务调用可能来自不同的机器。所以我需要通过 REST web 服务找出 IP 地址。

从此链接 request.getRemoteAddr()使用它。

但我不能使用 getRemoteAddr()。因为我的请求和响应都是xml格式。

我在 REST 服务中使用了 post 方法。Tomcat 服务器。我以 xml 格式发送请求。

我怎样才能得到IP地址?

4

3 回答 3

36

假设您使用的是 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 对象。
于 2013-01-10T10:19:36.427 回答
0

无论您的请求(在本例中为 xml)的格式(或内容类型)如何,您的请求都会提供 IP 地址,通过该地址提交 xml 有效负载(请求)。因此,检查您的请求是最好的方法。

于 2013-01-10T09:56:18.577 回答
0

即使您的请求是 xml/json 格式,您也将使用远程/客户端计算机地址,request.getRemoteAddr();因为 IP 地址位于HTTP 请求标头中。

于 2013-01-10T10:08:32.513 回答