J'essaie d'accéder à un service Web qui nécessite une authentification, mais je suis également derrière un proxy qui nécessite sa propre authentification. Capable de passer le serveur proxy car je peux obtenir des résultats lorsque l'URL du service Web n'a pas d'authentification. Toutefois, lorsqu'un service Web nécessite une authentification, il ne fonctionne tout simplement pas. je reçois l'erreur suivante:Authentification par proxy et Web service
Exception in thread "main" java.net.ProtocolException: Server redirected too many times
Voici mon code ci-dessous:
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
if(getRequestorType() == Authenticator.RequestorType.PROXY)
{ //for proxy
return (new PasswordAuthentication("user", "pass".toCharArray()));
}
else
{ // for web service
return (new PasswordAuthentication("user2", "pass2".toCharArray()));
}
}
};
Authenticator.setDefault(auth);
SocketAddress addr = new
InetSocketAddress("proxy addr", port no);
Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);
URL url = new URL("...");
URLConnection yc = query.openConnection(proxy);
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
Ceci est ma première question ici. Toute aide serait très appréciée.
Votre appel demande est entré dans une boucle de redirection qui peut se produire pour deux raisons. Pour les réduire, pouvez-vous publier la requête HTTP complète + la réponse au service? –
@DeepakBala Je reçois le code de réponse 302 et l'emplacement de redirection est le même que l'URL de demande http. BTW voici la demande HTTP: http://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?Sources='web'&Query='test'&$format=JSON – user2229167