2014-02-17 4 views
0

Я пытаюсь получить ответ от своего офисного сервера. Ответ имеет минимум 50 000 строк. Но я не получаю полного ответа. Я не знаю, где пошло не так. Будут ли полные данные не загружаться или какие-либо другие проблемы с моим InputStream?Неполный ответ HTTP в android

HttpClient httpClient = new DefaultHttpClient(); 
HttpContext httpcontext = new BasicHttpContext(); 
HttpPost httpPost = new HttpPost(mUrl); 
HttpResponse mResponse = httpClient.execute(httpPost, httpcontext); 
InputStream mResponseStream = mResponse.getEntity().getContent(); 
BufferedReader br = new BufferedReader(new InputStreamReader(mResponseStream)); 
String line = ""; 
while ((line = br.readLine()) != null) { 
    line = line.replaceAll("[\r\n]", ""); 
    Log.v("Response", line); 
} 

Необходимый Ответ:

02-17 18:32:14.000: D/Lib(4121): Starts 
02-17 18:32:14.010: D/Lib(4121): 12080964|~|1370.00 
02-17 18:32:14.010: D/Lib(4121): 12083142|~|500.00 
02-17 18:32:14.020: D/Lib(4121): 13051372|~|100.00 
02-17 18:32:14.020: D/Lib(4121): 13040457|~|12.00 
02-17 18:32:14.060: D/Lib(4121): 12010037|~|170.00 
02-17 18:32:14.060: D/Lib(4121): ......... 
02-17 18:32:14.060: D/Lib(4121): Ends 

Получения ответ:

02-17 18:32:14.000: D/Lib(4121): Starts 
02-17 18:32:14.010: D/Lib(4121): 12080964|~|1370.00 
02-17 18:32:14.010: D/Lib(4121): 12083142|~|500.00 
02-17 18:32:14.020: D/Lib(4121): 13051372|~|100.00 
02-17 18:32:14.020: D/Lib(4121): 13040457|~|12.00 
02-17 18:32:14.060: D/Lib(4121): 12010037|~|170.00 
02-17 18:32:14.060: D/Lib(4121): ......... 

Мой ответ всегда начинается с ключевым словом Starts и заканчивается Ends ключевым словом. Всегда я не получаю ключевое слово Ends. Ответ прекращается в пределах номера от 25 000 до 33 000. Спасибо.

+0

и что вы получаете, когда вы запрашиваете это вручную или с помощью другого инструмента, как завиток? (кстати, вы должны сделать запрос GET, а не POST - вы ничего не отправляете, что требует POST) –

+0

попытайтесь дать размер BufferedReader – Sonali8890

+0

@MarcinOrlowski Я отправляю данные для аутентификации, и я не использовал завиток. – SathishKumar

ответ

0

Здесь я получаю строку от ответа после этого, я преобразовываю этот ответ строки в InputStream, этот процесс дает полный отклик. Пока я пытался получить InputStream из ответа, он возвращает неполные данные. Во всяком случае, я получил полный ответ, но пока не знаю, почему я не могу получить полный ответ, используя mResponse.getEntity().getContent().

Мой рабочий код,

HttpClient httpClient = new DefaultHttpClient(); 
HttpContext httpcontext = new BasicHttpContext(); 
HttpPost httpPost = new HttpPost(mUrl); 
HttpResponse mResponse = httpClient.execute(httpPost, httpcontext); 
String responseString=EntityUtils.toString(mResponse.getEntity()); 
InputStream mResponseStream = new ByteArrayInputStream(responseString.getBytes(HTTP.UTF_8)); 
BufferedReader br = new BufferedReader(new InputStreamReader(mResponseStream)); 
String line = ""; 
while ((line = br.readLine()) != null) { 
    line = line.replaceAll("[\r\n]", ""); 
    Log.v("Response", line); 
} 
Смежные вопросы