Wie gehe ich mit Header-Werten variabler Länge um, wenn HTTP-Anfragen in Java analysiert werden?Java

Java-Forum
Anonymous
 Wie gehe ich mit Header-Werten variabler Länge um, wenn HTTP-Anfragen in Java analysiert werden?

Post by Anonymous »

Ich baue einen HTTP-Server auf und analysiere Anforderungsheader. Mein aktueller Code schlägt fehl, wenn der „Host“-Header eine Portnummer enthält, weil ich nach „:“ teile.
**Aktueller Code:**
```java
String[] header = line.split(":");
String key = header[0].trim();
String value = header[1].trim();
if (key.equals("Host")) {

Code: Select all

value = value + ":" + header\[2\]; // ArrayIndexOutOfBoundsException!
```
**Problem:**
- Funktioniert für „Host: example.com:8080“
- Schlägt für „Host: example.com“ fehl (kein Port)
**Frage:** Was ist der beste Weg, um möglicherweise enthaltene Headerwerte wieder zusammenzuführen? Doppelpunkte?
**Was ich versucht habe:**
- „header.length“ wird überprüft, fühlt sich aber umständlich an
- „indexOf(':')“ anstelle von „split()“ verwenden
Welcher Ansatz ist robuster für das Parsen von HTTP-Headern?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post