Requete HTTP sur une servlet et caractères spéciaux
Bonjour,
Je faias actuellement face à un problème concernant une requête HTTP vers une servlet distante.
La servlet en question récupère un message et le stocke pour affichage, un genre de chat en fait.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
public void sendAnswer (String answer){
try {
URL chat_url;
HttpURLConnection urlCon;
String chat_str = CHAT_URL
+ "?MODE=REGIST&VP_NO=" +
relatedChat.getVp_no() +
"&PLAYER=" +
relatedChat.getRole() +
"&MESSAGE=" +
answer;
chat_url = new URL(chat_str);
urlCon = (HttpURLConnection) chat_url.openConnection();
urlCon.setRequestMethod("GET");
/*POST PARAMETERS*/
// urlCon.setRequestProperty("MODE", "REGIST");
// urlCon.setRequestProperty("VP_NO", String.valueOf(relatedChat.getVp_no()));
// urlCon.setRequestProperty("PLAYER", relatedChat.getRole());
// urlCon.setRequestProperty("MESSAGE", answer);
urlCon.setDoOutput(true);
urlCon.connect();
int ret_code = urlCon.getResponseCode();
String ret_msg = urlCon.getResponseMessage();
urlCon.disconnect();
}
catch (MalformedURLException mex) {
System.out.println(mex.getMessage());
}
catch (IOException ex) {
System.out.println(ex.getMessage());
}
} |
L'appel fonctionne bien, sauf dans le cas ou un des paramètres de la requète possède des caractères spéciaux, problème ! Code de retour 505, Version Not Supported...
Aucune différence que ce soit en GET ou en POST, la servlet "Chat" fonctionne correctement.
Par exemple si answer ="Hello", pas de problème. Si par contre c'est "How do you do" ou "How are you ?" => code 505.
Ca doit etre tout con à résoudre mais je n'ai pas trouvé comment faire :?