如何在Java中使用RESTful Web服务获取远程/客户端IP地址?


问题内容

我已经在项目中编写了Rest Web服务.Web服务调用可能来自其他计算机。因此我需要通过REST Web服务来查找IP地址。

通过此链接 request.getRemoteAddr() 来使用它。

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

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

我如何获得IP地址?


问题答案:

假设您正在使用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对象。