疑问:jersey client 是否可以指定IP?

hustzwm073930 2014-09-24
目前在做一个项目,服务器上有多个IP,需要指定client的源IP,但是我翻看了jersey的API文档,没有发现相关的内容,jersey有没有方法可以指定client的源IP?求大神解惑,tks!
lsekfe 2014-09-24
看看 也想知道
hustzwm073930 2014-09-25
找到方法了,jersey提供了使用apache 的httpclient创建WebTarget的方法,
apche使用4.3.1以上版本。通过RequestConfig.setLocalAddress方法可以设置本地client的IP,代码如下:
ClientConfig cConfig = new ClientConfig();
byte ip[] = new byte[4];
ip[0] = new Integer(10).byteValue();
ip[1] = new Integer(138).byteValue();
ip[2] = new Integer(196).byteValue();
ip[3] = new Integer(200).byteValue();

RequestConfig req = RequestConfig.custom().setLocalAddress(InetAddress.getByAddress(ip)).build();
cConfig.connectorProvider(new ApacheConnectorProvider());
cConfig.property(ApacheClientProperties.REQUEST_CONFIG, req);

Client client = ClientBuilder.newClient(cConfig);         
WebTarget webTarget = client.target(requestUrl);
Global site tag (gtag.js) - Google Analytics