2013-09-22 26 views
12

Jest to łatwe do ustawienia proxy dla klienta na Jersey1.x:Jak dodać proxy HTTP dla Jersey2 Klienta

config.getProperties().put(ApacheHttpClientConfig.PROPERTY_PROXY_URI, proxyUrl); 

Ale jak dodać proxy HTTP klienta Jersey2.x? Sprawdziłem kod źródłowy i nie znaleźć realizację robi w:

org.glassfish.jersey.client.HttpUrlConnector

Dzięki!

Odpowiedz

9

Ustawienie innego proxy w czasie wykonywania nie jest dobrym rozwiązaniem. W związku z powyższym, użyłem złącze apache, aby to zrobić:

dodać apache zależność złącza zdefiniowane:

<dependency> 
<groupId>org.glassfish.jersey.connectors</groupId> 
<artifactId>jersey-apache-connector</artifactId> 
</dependency> 

dodania apache złącze do klienta

config.property(ApacheClientProperties.PROXY_URI, proxyUrl); 
Connector connector = new ApacheConnector(config); 
config.connector(connector); 
+5

To nie działa dla złącza Apache 2.17 – Dejell

6

Jeśli używasz domyślnego złącza HTTP jersey 2.0 (czyli JDK Http (s) URLConnection). Może po prostu prosty skonfigurować proxy jak:

System.setProperty ("http.proxyHost", "proxy_server"); 
    System.setProperty ("http.proxyPort", "proxy_port"); 

Dla innych implementacjach złącza http (klient HTTP Apache i Grizzly Asynchronous Client), nie próbowałem wcześniej. Ale myślę, że możesz postępować zgodnie z instrukcją przez samo złącze http.

+0

Thanks dla twoja pomoc, myślę, że powinno to być dobre rozwiązanie dla pojedynczego środowiska, ale jeśli potrzebuję abstrahować mojego klienta biz, a serwer proxy jest parametrem, czy to nie działa za każdym razem? Czy jest zsynchronizowany problem? – feuyeux

+0

można użyć pliku właściwości, aby skonfigurować parametry. lub możesz użyć -Dhttp.proxyHost = "proxy_server" i -Dhttp.proxyPort = "proxy_port" – Lifecube

+1

Ustawienie innego proxy w środowisku wykonawczym nie jest dobrym rozwiązaniem. związku z tym, że stosuje się łącznik apache'a do tego: org.glassfish.jersey.connectors Jersey Apache'owi złącze config.property (ApacheClientProperties.PROXY_URI, proxyUrl); Łącznik wtyku = nowy ApacheConnector (config); config.złącze (złącze); – feuyeux

13

dzięki @feuyeux, rozwiązaniem jest praca dla mnie, ps, ​​kod poniżej działa w proxy z podstawowym uwierzytelnieniem http:

ClientConfig config = new ClientConfig(); 
    config.connectorProvider(new ApacheConnectorProvider()); 
    config.property(ClientProperties.PROXY_URI, proxy); 
    config.property(ClientProperties.PROXY_USERNAME,user); 
    config.property(ClientProperties.PROXY_PASSWORD,pass); 
    Client client = JerseyClientBuilder.newClient(config); 

nadzieję pomóc innym

0

To rozwiązanie pracował dla mnie

pom.xml

<dependency> 
    <groupId>org.glassfish.jersey.connectors</groupId> 
    <artifactId>jersey-apache-connector</artifactId> 
    <version>2.17</version> 
</dependency> 

Java

ClientConfig config = new ClientConfig(); 
config.property(ClientProperties.PROXY_URI, "http://_YOUR_URI_:_YOUR_PORT_"); 
config.connectorProvider(new ApacheConnectorProvider()); 
Client client = ClientBuilder.newClient(config); 

nadzieję, że pomoże :)