2010-06-11 7 views
4

Je suis en train de consommer un WebService reposant en Java en utilisant le Apache Wink framework par mon proxy web école nécessitant d'authentificationConsommez webservice reposant par proxy web

ClientConfig clientConfig = new ClientConfig(); 
clientConfig.proxyHost("proxy.school.com"); 
clientConfig.proxyPort(3128); 
//nothing to set username and password :(

RestClient client = new RestClient(clientConfig); 
Resource resource = client.resource("http://vimeo.com/api/v2/artist/videos.xml"); 
String response = resource.accept("text/plain").get(String.class); 

J'ai aussi essayé d'utiliser le BasicAuthSecurityHandler mais il semble être utilisé pour authentifier directement à un serveur Web, pas le proxy web

BasicAuthSecurityHandler basicAuthHandler = new BasicAuthSecurityHandler(); 
basicAuthHandler.setUserName("username"); 
basicAuthHandler.setPassword("password"); 
config.handlers(basicAuthHandler); 

échoueront toujours avec un code d'erreur HTTP 407: authentification proxy requise.

J'ai googlé le meilleur que je pouvais, rien est venu mieux consommer un webservice d'un client Java via un proxy web, si quelqu'un a une autre idée, ne hésitez pas à répondre

Répondre

3

Ok qui était assez difficile mais Je l'ai trouvé ! Je me suis connecté les requêtes HTTP qui étaient fabriqués à partir de mon navigateur avec Fiddler et a trouvé que la Proxy-Connection et Proxy-Authorization étaient ce que je cherchais après avoir lu une documentation complète comme RFC 2616 sur les HTTP/1.1

Je copie-collé les valeurs étaient envoyés dans mon code java:

resource.header("Proxy-Connection", "Keep-Alive"); 
resource.header("Proxy-Authorization", "Basic encodedString"); 

encodedString est ce qui est envoyé par mon navigateur: username:password codé en base64

Et il fonctionne maintenant parfaitement :)

1

Ce problème a été soulevé en tant que [1] et a depuis été résolu avec l'ajout d'un ProxyAuthSecurityHandler disponible pour les développeurs du client Apache Wink.

[1]: https://issues.apache.org/jira/browse/WINK-292Apache Wink question JIRA WINK-292

Questions connexes