Ich versuche, Ihre in einem String kommt den Header der HTTP-Anforderung oder nicht zu erkennen, denn das ich festzustellen, wenn zwei Zeilenumbrüche (nach Norm):Ich kann nicht trennen den HTTP-Body-Header
String bufferRequest = socketServer.getBufferPart();
Pattern regexHTTP = Pattern.compile("((.+\\n)+\\n)");
Matcher regexMatcherHTTP = regexHTTP.matcher(bufferRequest);
if (regexMatcherHTTP.find()) {
String requestHeader = regexMatcherHTTP.group(1);
// ...
Der Anforderungspuffer Beispiel:
GET/HTTP/1.1
abc: def
ghi: jkl
body part 1 ...
body part 2 ...
body etc ...
von „GET /“ erhalten müssen „jkl“, aber er mich nicht erkennt, was habe ich falsch gemacht ?.
In regexr.com funktioniert: http://regexr.com/3ekjm
Können Sie nicht jede Zeile lesen, bis Sie die erste leere erhalten? –
Ich würde für jede Zeile eine tun müssen, wenn der Benutzer viele Headerzeilen sendet der CPU-Prozess könnte höher sein als mit dem regulären Ausdruck, sonst ist es weniger elegant hahaha. –
ist es irreführend zu denken, dass das Lesen vieler Headerzeilen in einer for-Schleife zu einer höheren CPU-Auslastung führt. Wenn überhaupt, könnte das Regex-Parsen etwas kostspieliger sein, aber für den Fall sollten Sie sich keine Gedanken über die Leistung machen, es sei denn, bis Sie einen Engpass bemerken, den Sie durch [Profilerstellung] feststellen können (http://docs.oracle.com/javase/8/ docs/technotes/guides/visualvm/profiler.html). – asgs