2013-01-10 5 views
10

Ich habe Rest Web-Service in meinem Projekt geschrieben. Der Web-Service-Aufruf kann von verschiedenen machine.so Ich muss die IP-Adresse durch REST-Webservice herausfinden.Wie bekomme ich Remote/Client-IP-Adresse mit RESTful Web Service in Java?

Von diesem linkrequest.getRemoteAddr(), um dies zu verwenden.

Aber ich kann getRemoteAddr() nicht verwenden. Weil meine Anfrage und Antwort sind XML-Format.

Ich habe Post-Methode in REST-Service.Tomcat server.Ich habe Anfrage als XML-Format.

Wie kann ich die IP-Adresse bekommen?

+0

können Sie sagen, welche Technologie/Framework Sie verwenden? – TheWhiteRabbit

Antwort

31

Sie Unter der Annahme, verwenden JAX-RS:

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

Die @Context Anmerkung Sie Instanzen von

  • javax.ws.rs.core.HttpHeaders injizieren können,
  • javax.ws .rs.core.UriInfo,
  • javax.ws.rs.core.Request,
  • javax.servlet.HttpServletRequest,
  • javax.servlet.HttpServletResponse,
  • javax.servlet.ServletConfig,
  • javax.servlet.ServletContext und
  • javax.ws.rs.core.SecurityContext Objekte.
0

Unabhängig vom Format (oder Inhaltstyp) Ihrer Anfrage (in diesem Fall xml) Die IP-Adresse wird mit Ihrer Anfrage geliefert, über die die XML-Payload (Anfrage) gesendet wird. Daher ist die Überprüfung mit Ihrer Anfrage der beste Weg.

+0

Ihre Anfrage Daten (XML) ist immer in HTTP-Anfrage verpackt – TheWhiteRabbit

0

Auch wenn Ihre Anfrage im XML/JSON-Format vorliegt, erhalten Sie die Remote/Client-Maschinenadresse unter Verwendung der request.getRemoteAddr();, da die IP-Adresse in HTTP Request header liegt.

+0

Ich kann nicht die getRemoteAddr() durch XML-Anfrage-Objekt. – Ami

Verwandte Themen