Я создаю приложение для Android, которое втягивает и отображает данные из JSON api.Вытягивание данных JSON дает код ответа 200, но длина содержимого -1, которая разбивает все
В частности, JSON API, что я вытягивать из является here
URL blogFeedUrl = new URL("http://www.johncorser.com/?json=1&count=15/");
HttpURLConnection connection = (HttpURLConnection)blogFeedUrl.openConnection();
connection.connect();
responseCode = connection.getResponseCode();
Log.i(TAG, "Code: " + responseCode);
Log.i(TAG, "Length " + connection.getContentLength());
if (responseCode == HttpURLConnection.HTTP_OK){
InputStream inputStream = connection.getInputStream();
Reader reader = new InputStreamReader(inputStream);
int contentLength = connection.getContentLength();
char[] charArray = new char[contentLength]; //Line 97, where the error is thrown because contentLength == -1
reader.read(charArray);
String responseData = new String(charArray);
jsonResponse = new JSONObject(responseData);
}
else {
Log.i(TAG, "Unsuccessful HTTP response code: " + responseCode);
}
Когда я запускаю это, LogCat дает мне эту StackTrace:
10-15 11:36:00.512 8704-8718/com.johncorser.johncorser I/MainListActivity﹕ Code: 200
10-15 11:36:00.512 8704-8718/com.johncorser.johncorser I/MainListActivity﹕ Length -1
10-15 11:36:00.512 8704-8718/com.johncorser.johncorser E/MainListActivity﹕ Exception caught:
java.lang.NegativeArraySizeException: -1
at com.johncorser.johncorser.MainListActivity$GetBlogPostTask.doInBackground(MainListActivity.java:97)
at com.johncorser.johncorser.MainListActivity$GetBlogPostTask.doInBackground(MainListActivity.java:80)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Странной часть, если я поменять api с одним структурированным почти идентичным образом, как один here, код выполняется без ошибок.
Любая идея, почему я не могу загрузить эти конкретные данные JSON?
Это решается быстро и легко, и объяснил ошибку, которую я сделал в очень простым способом. – johncorser