Я ищу лучший способ извлечь данные из строки, содержащей HTTP-заголовок. Например, я хотел бы получить номер 160 из части длины содержимого строки: «Content-Length: 160 \ r \ n».Извлечение значений из строки, содержащей HTTP-заголовок
Похоже, что всем данным в заголовке HTTP предшествуют имя, двоеточие и пробел, а после значения сразу следует символы '\ r' и '\ n'.
На данный момент я делаю это:
int contentLengthIndex = serverHeader.lastIndexOf("Content-Length: ");
int contentLastIndex = serverHeader.length()-1;
String contentText = serverHeader.substring(contentLengthIndex + 16, contentLastIndex);
contentText = contentText.replaceAll("(\\r|\\n)", "");
int contentLength = Integer.parseInt(contentText);
Но, кажется, грязный, и это хорошо только для получения «Content-Length» в конце строки. Существует ли более универсальное решение для извлечения значений из строки, содержащей HTTP-заголовок, который можно настроить для работы как для значений int, так и для значений String?
Следует также упомянуть, что соединение должно возвращать данные обратно в браузер после запроса, что, по моему мнению, не позволяет мне воспользоваться преимуществами использования HttpURLConnection.
Как вы получаете заголовки? – kaysush
@SuKu, я храню их символ по символу в String. Я сейчас далеко от кода, но я считаю, что это через InputStreamReader. –
определенно это должен быть какой-то «читатель», но что является источником этого «читателя», я имею в виду, что вы можете продолжить использование «HttpURLConnection», как я упомянул в своем ответе. – kaysush