Я могу загружать меньшие ответы JSON со следующим кодом:
public String getHTTPData() {
HttpURLConnection httpURLConnection = null;
InputStream inputStream = null;
try {
httpURLConnection = (HttpURLConnection) (new URL(BASE_URL)).openConnection();
httpURLConnection.setRequestMethod("GET");
httpURLConnection.setDoInput(true);
httpURLConnection.connect();
StringBuffer stringBuffer = new StringBuffer();
inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = bufferedReader.readLine()) != null) {
stringBuffer.append(line + "\n");
}
inputStream.close();
httpURLConnection.disconnect();
} catch (Throwable t) {
t.printStackTrace();
} finally {
try {
inputStream.close();
httpURLConnection.disconnect();
} catch (Throwable t) {
t.printStackTrace();
}
}
return null;
}
но когда я не смог найти определенный API (API китайского словаря), я подумал, что мог бы также проанализировать исходный код HTML для получения данных, которые мне нужны. Но я, кажется, получаю только первые 100 строк исходного кода. Должно быть, мне не хватает чего-то очень простого, например HTTP-параметра maxLength или тайм-аута. Ничего не нашел в SO, также попробовал код, предложенный Google здесь и столкнулся с той же проблемой. Я не уверен, как дальше это отлаживать, я вижу, что поток ввода высыхает и возвращает «-1» (пробовал разные фрагменты maxLength в «readStream» и получил блоки меньшего размера, но в конце все равно иссяк), поэтому я предполагаю, что это URLConnection не доставляется. Или, может быть, мой код входного потока неисправен? Кстати, это URL-адрес https, но, поскольку я получаю некоторые исходные данные, я не думаю, что это проблема протокола (надеюсь, я обобщил это несколько разумно...)