diff --git a/src/Servers/GenHttpServer11/GenHttpServer.csproj b/src/Servers/GenHttpServer11/GenHttpServer.csproj
index 634b3a0..3b7c84d 100644
--- a/src/Servers/GenHttpServer11/GenHttpServer.csproj
+++ b/src/Servers/GenHttpServer11/GenHttpServer.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/src/Servers/GenHttpServer11/Program.cs b/src/Servers/GenHttpServer11/Program.cs
index ec9be43..9c964c5 100644
--- a/src/Servers/GenHttpServer11/Program.cs
+++ b/src/Servers/GenHttpServer11/Program.cs
@@ -9,7 +9,7 @@
var port = (args.Length > 0 && ushort.TryParse(args[0], out var p)) ? p : (ushort)8080;
-var rootMethods = new HashSet { RequestMethod.Get, RequestMethod.Head, RequestMethod.Options };
+var rootMethods = new HashSet { RequestMethod.Get, RequestMethod.Head, RequestMethod.Options };
var app = Inline.Create()
.Get("/cookie", (IRequest request) => ParseCookies(request))
@@ -35,10 +35,7 @@ static string Echo(IRequest request)
{
var header = source[i];
- var key = Encoding.ASCII.GetString(header.Key.Span);
- var value = Encoding.ASCII.GetString(header.Value.Span);
-
- headers.AppendLine($"{key}: {value}");
+ headers.AppendLine($"{header.Key}: {header.Value}");
}
return headers.ToString();
@@ -48,34 +45,13 @@ static string ParseCookies(IRequest request)
{
var sb = new StringBuilder();
- var cookieHeader = request.Header.Headers.GetEntry("Cookie");
-
- if (cookieHeader == null)
- {
- return string.Empty;
- }
-
- var remaining = cookieHeader.AsSpan();
+ var cookies = request.Header.Headers.GetCookies();
- while (!remaining.IsEmpty)
+ for (var i = 0; i < cookies.Count; i++)
{
- var delimiterIndex = remaining.IndexOf("; ");
-
- var segment = delimiterIndex >= 0
- ? remaining[..delimiterIndex]
- : remaining;
-
- var equalsIndex = segment.IndexOf('=');
-
- if (equalsIndex > 0)
- {
- var key = segment[..equalsIndex].Trim();
- var value = segment[(equalsIndex + 1)..].Trim();
-
- sb.AppendLine($"{key}: {value}");
- }
+ var cookie = cookies[i];
- remaining = delimiterIndex >= 0 ? remaining[(delimiterIndex + 2)..] : ReadOnlySpan.Empty;
+ sb.AppendLine($"{cookie.Key}: {cookie.Value}");
}
return sb.ToString();