Maillot Client + set proxy
Salut, j'ai un maillot de client que j'utilise pour télécharger un fichier. J'ai essayé de l'utiliser en local et tout fonctionne bien. Mais dans l'environnement de production, je n'ai qu'à configurer le proxy. J'ai parcouru thru quelques pages, mais ne pouvait pas obtenir la solution exacte. Quelqu'un peut-pls m'aider?
voici mon code client:
File file = new File("e:\\test.zip");
FormDataMultiPart part = new FormDataMultiPart();
part.bodyPart(new FileDataBodyPart("file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE));
WebResource resource = null;
if(proxy.equals("yes")){
//How do i configure client in this case?
}else{
//this uses system proxy i guess
resource = Client.create().resource(url);
}
String response = (String)resource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(String.class, part);
System.out.println(response);
Vous devez vous connecter pour publier un commentaire.
Il y a une approche plus facile, si vous souhaitez éviter plus de bibliothèques dans les projets et il n'est pas nécessaire pour l'Authentification du Proxy:
D'abord vous avez besoin d'une classe qui implémente
HttpURLConnectionFactory
:Deuxième consiste à instancier un
com.sun.jersey.client.urlconnection.URLConnectionHandler
et la troisième est d'utiliser le
Client
Constructeur au lieu deClient.create
:Bien sûr, vous pouvez personnaliser l'initialisation de la Procuration dans le
ConnectionFactory
.luckyluke réponse doit travailler.
Voici ma version:
Ici, vous allez:
J'ai pris user67871 et changé un peu. Ce qui est bien à propos de cette approche est qu'il fonctionne avec le système de proxy sur Windows. Si vous êtes sur Windows et vous configurer un proxy dans IE, alors ce code va ramasser ça. Lorsque vous exécutez le Violoneux, il définit également le système de proxy alors cela le rend vraiment facile à utiliser Jersey et Fiddler ensemble.
Tout d'abord j'ai créé cette classe
puis, j'ai aussi créer une autre classe appelée SecureTrustManager
puis, après la création de cette classe, je vais appeler le client comme cette
remplacer webProxy.getWeserviceHost par votre proxyHost et webProxy.getWebserviceProxyPort() par le port du proxy.
Cela a fonctionné pour moi et cela devrait fonctionner pour vous aussi. Note que je suis en utilisant Jersey 1.8 mais il convient également de travailler pour le Jersey 2
SDolgy. J'ai fait ce qui ajouter 3 fonctions dans le Maillot client instanciation:
Permet SSL TLSv1.1 (JVM >= 1.7 nécessaire), Configurer conex. mise en commun. pour augmenter les conections, Définir un système de proxy.
A été en mesure de configurer le proxy substitution de la configuration du client fourni à newClient. Il a travaillé pour la version 24.