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

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

Сообщение Anonymous »

Я создаю HTTP-сервер и анализирую заголовки запросов. Мой текущий код завершается сбоем, когда заголовок `Host` включает номер порта, потому что я разделяю `:`.
**Текущий код:**
```java
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»