Apache HTTPClient не обрабатывает символы новой строки - PullRequest
3 голосов
/ 26 октября 2011

Я пишу небольшое приложение, которое получает html с веб-сервера на основе некоторых переменных в HTTP POST.HTML-данные, которые возвращаются, содержат раздел <pre>, в котором есть несколько слов, которые хорошо разнесены с помощью символов новой строки и табуляции, но мое приложение их не получает.Код выглядит следующим образом:

HttpPost post = new HttpPost("REMOVED FOR PRIVACY");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            //REMOVED FOR PRIVACY

        post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpClient.execute(post, httpContext);
        String htmlBrief = inputStreamToString(response.getEntity().getContent()).toString();
        return htmlBrief;
        }

Я думаю, что это может быть то, как я читаю ответ, передавая его через BufferedReader, например, так:

private StringBuilder inputStreamToString(InputStream is) throws IOException {
    int c;
    StringBuilder total = new StringBuilder();

    // Wrap a BufferedReader around the InputStream
    BufferedReader rd = new BufferedReader(new InputStreamReader(is));

    // Read response until the endIndex
    while ((c = rd.read()) != -1) { 
        total.append((char)c); 
    }

    // Return full string
    return total;
}

Я думал, что это может быть, потому что я былчтение построчно в буферизированном считывателе, поэтому я переключался на один символ за раз, но это не помогло.

Любая помощь будет принята с благодарностью.

Спасибо, Бен

1 Ответ

0 голосов
/ 14 декабря 2011

Используйте Charles или Fiddler для проверки того, что фактически отправляется в теле HTTP-запроса.

Наиболее вероятные проблемы:

  • Несоответствие наборов символов для клиента и сервера;
  • Ошибка декодирования тела в кодировке URL.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...