2015-07-04 2 views
0

Update: Если я использую System.out.println(EntityUtils.toString(response.getEntity())); выходом является то, что, как представляется, недостающие строки HTML (в том числе закрытия body и html тегов). Однако печать в файл все еще только дает мне первые 2000 нечетных строки пропавших последнему 1000.Apache HttpClient не получает весь ответ


Я использую следующий код для выполнения запроса HTTP POST:

public static String Post(CloseableHttpClient httpClient, String url, Header[] headers, 
      List<NameValuePair> data, HttpClientContext context) throws IOException 
{ 
    HttpPost httpPost = new HttpPost(url); 
    httpPost.setEntity(new UrlEncodedFormEntity(data)); 
    httpPost.setHeaders(headers); 
    CloseableHttpResponse response = httpClient.execute(httpPost, context); 

    if (response.getEntity() == null) 
     throw new NullPointerException("Unable to get html for: " + url); 

    // Get the data then close the response object 
    String responseData = EntityUtils.toString(response.getEntity()); 
    EntityUtils.consume(response.getEntity()); 
    response.close(); 

    return responseData; 
} 

Однако я не получая полный объект ответа. Я не хватает около 1000 строк HTML (в том числе закрытие body и html теги Я думаю, что это происходит потому, что данные передаются на куски, хотя я не совсем уверен,

Вот заголовки ответа:..

Cache-Control:max-age=0, no-cache, no-store 
Connection:Transfer-Encoding 
Connection:keep-alive 
Content-Encoding:gzip 
Content-Type:text/html; charset=utf-8 
Date:Sat, 04 Jul 2015 15:14:58 GMT 
Expires:Sat, 04 Jul 2015 15:14:58 GMT 
Pragma:no-cache 
Server:Microsoft-IIS/7.5 
Transfer-Encoding:chunked 
Vary:User-Agent 
Vary:Accept-Encoding 
X-Content-Type-Options:nosniff 
X-Frame-Options:SAMEORIGIN 

Как я могу гарантировать, что я получаю полную сущность ответа

+1

Поделиться кодом для сохранения в файле - необходимо сделать ошибку – Antoniossss

+0

@WandMaker definetly no – Antoniossss

+0

@WandMaker Я так не думаю, см. Http://stackoverflow.com/questions/15969037/why-did-the-author -use-entityutils-consumehttpentity – james

ответ

1

для того, чтобы собрать всю суть комментариев Там нет ничего плохого с кодом здесь? -. с использованием EntityUtils является Рекомендован способом борьбы со всеми видами ответов. У вас есть ошибка в коде, который хранит ваш ответ на файл.

Смежные вопросы