Как обрабатывать значения заголовка переменной длины при анализе HTTP-запросов в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как обрабатывать значения заголовка переменной длины при анализе HTTP-запросов в Java?

Сообщение Anonymous »

Я создаю HTTP-сервер и анализирую заголовки запросов. Мой текущий код завершается сбоем, когда заголовок Host включает номер порта, потому что я разделяюсь на:.
Текущий код:

Код: Выделить всё

String[] header = line.split(":");
String key = header[0].trim();
String value = header[1].trim();
if (key.equals("Host")) {
value = value + ":" + header[2]; // ArrayIndexOutOfBoundsException!
}
Проблема:
  • Работает для хоста: example.com:8080
  • Не работает для хоста: example.com (нет порта)
Вопрос:
Как лучше всего воссоединить значения заголовка, которые могут содержать двоеточия?
Что я пробовал:
  • Проверка header.length, но выглядит неуклюже
  • Использование indexOf(':') вместо Split()
Какой подход более надежен для анализа HTTP-заголовка?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ts-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»