Android получает JSON из URL-адреса нулевой ответ и ошибка от localhost

У меня есть исходный код Java Java:

private void getDataFromServer(String url){
InputStream is = null;
JSONObject json = null;
String output = "";
URL _url;
URLConnection urlConnection = null;

try {
_url = new URL(url);
urlConnection = _url.openConnection();
}
catch (MalformedURLException e) {
Log.e("JSON Parser", "Error due to a malformed URL " + e.toString());

}
catch (IOException e) {
Log.e("JSON Parser", "IO error " + e.toString());

}

try {
urlConnection.setRequestProperty("Accept-Charset", "UTF-8");
urlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
is = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder total = new StringBuilder(is.available());
String line;
while ((line = reader.readLine()) != null) {
total.append(line).append('\n');
}
output = total.toString();
}
catch (IOException e) {
Log.e("JSON Parser", "IO error " + e.toString());

}
//        finally{
//            urlConnection.disconnect();
//        }

try {
json = new JSONObject(output);
}
catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
}

и URL = Http: //localhost/API/getdata.php
вернусь :

[
{
"id": "1",
"nama_kab": "KAB. BOGOR",
"jml_miskin": "479",
"presentase_miskin": "8.91",
"indeks_kedalaman": "1.27",
"indeks_keparahan": "0.29",
"garis_kemiskinan": "280312",
"latitude": "-6.59504",
"longitude": "106.817"}
]

я использую отладку и точку останова, она всегда останавливается и выдает ошибку, когда:
is = new BufferedInputStream(urlConnection.getInputStream());
Я попытался добавить кодировку и любой другой стековпоток, но все равно ошибка.
Помогите мне, пожалуйста

это мой манифест:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

0

Решение

Во-первых, ответ не является объектом (JSONObject), но массив, так что вы должны сделать ваш разбор соответственно (используйте JSONArray). Во-вторых, Content-Type заголовок, отправленный сервером, клиенты используют Accept заголовок, чтобы указать, какие данные они ожидают.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector