Как я могу сказать java использовать определенный исходящий ip-интерфейс для http-запроса? - PullRequest
3 голосов
/ 21 марта 2011

Кто-нибудь знает быстрый способ заставить исходящий http-запрос пройти через определенный (логический) IP-адрес в Java?

Я подумываю об использовании HTTP-клиента Apache (часть компонентов http), который, безусловно, имеет способ сделать это, но API выглядит не тривиально. Кто-нибудь уже делал что-нибудь подобное с ним?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 21 марта 2011
1 голос
/ 09 октября 2012

используйте socket.bind(bindpoint) непосредственно перед socket.connect(endpoint).

bindpoint и endpoint может быть InetSocketAddress

0 голосов
/ 21 марта 2011

http.route.local-address параметр - ваш друг [1]. В качестве альтернативы вы можете захотеть реализовать пользовательский HttpRoutePlanner, чтобы иметь полный контроль над процессом вычисления маршрута и назначать соединения локальным интерфейсам, используя какую-то стратегию.

[1] http://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html#d4e501

...