如何在java中使用RESTful Web服务获取远程/客户端IP地址?
我在我的项目中编写了Rest Web服务.Web服务调用可能来自不同的机器。所以我需要通过REST webservice找出IP地址。
从这个链接 request.getRemoteAddr()来使用它。
但我不能使用getRemoteAddr()。 因为我的请求和响应是xml格式。
我在REST服务中使用了post方法.Tomcat服务器。我以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对象。
无论请求的格式(或内容类型)如何(在本例中为xml)IP地址随您的请求一起提供,xml有效负载(请求)通过该请求提交。 因此,检查您的请求是最好的方法。
即使您的请求是xml / json格式,您也可以使用request.getRemoteAddr();
获取远程/客户端机器地址request.getRemoteAddr();
因为IP地址位于HTTP请求标头中 。