отправить символ обратной косой черты в json, код ответа 500 - PullRequest
0 голосов
/ 25 февраля 2011

Я пытаюсь отправить сообщение через JSONObject через http.

JSONObject s=new JSONObject();
s.put("addresses", sno);
s.put("message",message);
s.put("senderName",shortcode);
OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream());
wr.write( s.toJSONString());
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));

Сообщение похоже на:

String message= “amount1\\KB  \n  amount2\\KB”

Ожидаемое полученное сообщение:

amount1\KB

amount2\KB

Теперь проблема в том, что http-сервер возвращает мне код ответа 500. И вызывает исключение в строке 9. Примечание. Проблемной областью является строковая часть \ КБ, если строковая переменная не содержит этот обратный слеш, все идет хорошо.

Я пытался:

message = message.replaceAll("\\\\", "\");

message = message.replaceAll("\\\\", "%5C");

это не вызвало никаких исключений, но полученное сообщение было следующим:

amount1\KB

amount2\KB

и

amount1%5CKB

amount2%5CKB

JSONObject.escape(message) также не работает.

1 Ответ

0 голосов
/ 25 февраля 2011

Хорошо из того, что вы написали, почему вы просто заменяете обратно% 5C на \ перед тем, как показать свой ответ?

...