java.io.IOException: le Serveur a renvoyé le code HTTP de la réponse: 400 URL
Je suis en train de travailler sur un thread java application que frapper une url pour envoyer des messages sms
le problème est que je suis derrière un serveur proxy NTLM et j'ai cherché la plupart de la journée et essayé plusieurs solutions mais sans succès, l'application donne l'intitulé de l'erreur et quand j'ai essayé d'imprimer la réponse d'erreur, j'ai trouvé que c'est une page d'erreur vient du serveur proxy
c'est la frappe du code
System.setProperty("java.net.useSystemProxies", "true");
System.setProperty("http.proxyHost", AUTH_PROXY");
System.setProperty("http.proxyPort", AUTH_PROXY_PORT);
System.setProperty("http.proxyUser", AUTH_USER);
System.setProperty("http.proxyPassword", AUTH_PASSWORD);
Authenticator.setDefault(
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(AUTH_USER, AUTH_PASSWORD.toCharArray());
}
}
);
URL url = new URL(urlString);
HttpURLConnection httpConn =(HttpURLConnection)url.openConnection();
httpConn.setReadTimeout(10000);
String resp = getResponse(httpConn);
logger.info("urlString=" + urlString);
logger.info("Response=" + resp);
ici, je reçois le respoonse
private String getResponse(HttpURLConnection Conn) throws IOException {
InputStream is;
if (Conn.getResponseCode() >= 400) {
is = Conn.getErrorStream();
} else {
is = Conn.getInputStream();
}
String response = "";
byte buff[] = new byte[512];
int b = 0;
while ((b = is.read(buff, 0, buff.length)) != -1) {
response += new String(buff, 0, b);
}
is.close();
return response;
}
toute aide est très appréciée grâce
OriginalL'auteur Dunken | 2014-08-04
Vous devez vous connecter pour publier un commentaire.
Après plusieurs essais je me suis rendu compte que le code ci-dessus est fine et les 400 erreur que j'ai fait est de ne pas l'encodage de l'URL des paramètres qui pourraient avoir des espaces
juste utilisé
pour les paramètres qui code les espaces résolu le problème
OriginalL'auteur Dunken