Я пытаюсь прочитать данные JSON с URL-адреса, и я получаю очень странное поведение. У меня есть ExpandableListView, и у каждого элемента есть кнопка для восстановления онлайн-данных. При первом нажатии кнопки он работает отлично, но любая попытка последующего сбоя. В этих попытках метод readLine возвращает странные символы:BufferedReader readLine возвращает странные символы
Y o F W < 2e = P Hω/ mKr) nEr ݥ% ޙ!) R [ w < Le: O i & N 9! D T 171 < ej e W ք * 8 0 n R , /`(+ D % D ' "
Я не могу понять, почему он работает только в первый раз. Даже странный факт, что это происходит на физических устройствах, но не на эмуляторе. Мой код:
public static String readContents(String url) {
HttpURLConnection con = getConnection(url);
if (con==null)
return null;
try {
StringBuilder sb = new StringBuilder(8192);
String tmp;
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF8"));
while((tmp = br.readLine()) != null)
sb.append(tmp).append("\n");
br.close();
return sb.toString();
} catch(IOException e) {
Log.d("READ FAILED", e.toString());
return null;
}
}
Спасибо, я добавил отключиться, но не повезло. И я получаю код 200. – droideparanoico
@droideparanoico Я обновил ответ еще на пару вещей, которые вы, вероятно, должны делать. Вы думали о том, чтобы повторить возвращенную строку в logcat? Это поможет вам различать проблему с HTTP-поиском и проблему с отображением возвращаемой строки. –
Те же отрицательные результаты. Это не проблема отображения, потому что возвращаемые данные обрабатываются JSONArray, и когда он возвращает эти странные символы, я получаю ошибку: "org.json.JSONException: Value WYo 8 + ¢ H eYq (Is типа java.lang.String не может быть преобразован в JSONArray " В любом случае, я только что повторил строку в logcat и подтвердил ее. – droideparanoico