Enviar una solicitud HTTP a través de una interfaz de red específica utilizando Spring RestTemplate

Estoy usando Spring RestTemplate y necesito forzar a mi cliente a enviar una solicitud HTTP a través de una interfaz de red específica.

Ya encontré una solución usando java socket:

NetworkInterface nif = NetworkInterface.getByName("wlan0");
Enumeration<InetAddress> nifAddresses = nif.getInetAddresses();
Socket s = new Socket();
s.bind(new InetSocketAddress(nifAddresses.nextElement(), 0));
s.connect(new InetSocketAddress(host, port));
// Instantiates a new PrintWriter passing in the sockets output stream
PrintWriter wtr = new PrintWriter(s.getOutputStream());
// Prints the request string to the output stream
wtr.println("GET "+path+" HTTP/1.1");
wtr.println("Host: "+host);
wtr.println("");
wtr.flush();
BufferedReader br = new BufferedReader(new 
InputStreamReader(s.getInputStream()));
String content = "";
while ((content=br.readLine()) != null) 
     {
         System.out.println(content);       
     }

¿Hay alguna manera de reproducir esta solución usando Spring RestTemplate?

Respuesta 1

Obtengo el siguiente stacktrace en una aplicación Grails 2.0.4: java.lang.ArrayIndexOutOfBoundsException: 6170 en com.springsource.loaded.NameRegistry.getIdFor (NameRegistry.java:44) en ...

Estoy enviando un objeto json a una URL REST como: JSONObject loan = new JSONObject (); loan.put ("clientId", "1"); loan.put ("productId", "1"); Ahora también tengo que enviar una matriz como parte de la carga útil: {...

¿Cuál es la forma ideal de crear un video en la plataforma Android usando JAVA? Intenté usar ffmpeg pero realmente tuve problemas para compilarlo. Sé que hay una clase que admite todas estas cosas en iOS, ...

Estamos utilizando Openshift infra. Tenemos Dynatrace para la recopilación de métricas, pero aún no está en buenas condiciones. Nuestra aplicación Java en uno de los Pod no funciona. Utilizamos gradle build y hemos mencionado ...