使用Apache HttpClient定义源IP地址

Hao*_*hun 1 java http httpclient

我正在开发一个有以下需求的项目:

  • 使用源IP地址A访问远程服务器XX.YY.ZZ.WW上的http服务S.
  • 使用源IP地址B访问远程服务器XX.YY.ZZ.WW上的http服务T(与上面相同)

XX.YY.ZZ.WW是我无法控制的主人.

我的服务器在同一个以太网接口上配置了IP A和IP B. 我的项目使用Apache HttpClient.如有必要,可将其更改为其他内容.

根据我的TCP/IP知识,这很容易.只要我拥有IP,我应该能够将源IP地址更改为我想要的任何内容.但毕竟,我不是直接操纵IP数据包.我不知道如何使用HttpClient完成这项工作.

Vas*_*san 6

final DefaultHttpClient httpClient = new DefaultHttpClient();
HttpParams params = httpClient.getParams();
params.setParameter(ConnRoutePNames.LOCAL_ADDRESS, InetAddress.getByName(IP_ADDRESS));
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 5

您只需要告诉HttpClient使用哪个网络接口.您可以使用连接属性执行此操作:

ConnRoutePNames.LOCAL_ADDRESS='ADDRESS A';
Run Code Online (Sandbox Code Playgroud)

有关完整说明,请查看文档的第2.4节.