Skip to content

Commit a1973d7

Browse files
authored
Update Servers/SimpleW
1 parent 95bc6a9 commit a1973d7

File tree

2 files changed

+30
-35
lines changed

2 files changed

+30
-35
lines changed
Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,46 @@
11
using System.Net;
22
using SimpleW;
3+
using SimpleW.Observability;
34

4-
var port = args.Length > 0 && int.TryParse(args[0], out var p) ? p : 8080;
5+
// logs
6+
Log.SetSink(Log.ConsoleWriteLine, LogLevel.Trace);
57

8+
var port = args.Length > 0 && int.TryParse(args[0], out var p) ? p : 8080;
69
var server = new SimpleWServer(IPAddress.Any, port);
710

11+
// default
12+
server.MapGet("/", () => "OK");
13+
server.Map("HEAD", "/", () => "OK");
14+
server.Map("OPTIONS", "/", (HttpSession session) => {
15+
return session.Response.AddHeader("Allow", "GET, HEAD, POST, OPTIONS")
16+
.Text("OK");
17+
});
18+
19+
// post
20+
server.MapPost("/", (HttpSession session) => session.Response.Text(session.Request.BodyString));
21+
22+
// echo
23+
server.MapGet("/echo", (HttpSession session) => Echo(session));
24+
server.MapPost("/echo", (HttpSession session) => Echo(session));
825

26+
// cookie
927
server.MapGet("/cookie", (HttpSession session) => ParseCookies(session));
1028
server.MapPost("/cookie", (HttpSession session) => ParseCookies(session));
11-
server.MapGet("/echo", (HttpSession session) =>
12-
{
13-
var sb = new System.Text.StringBuilder();
14-
foreach (var h in session.Request.Headers.EnumerateAll())
15-
sb.AppendLine($"{h.Key}: {h.Value}");
16-
return sb.ToString();
17-
});
18-
server.MapPost("/echo", (HttpSession session) =>
19-
{
29+
30+
static HttpResponse Echo(HttpSession session) {
2031
var sb = new System.Text.StringBuilder();
21-
foreach (var h in session.Request.Headers.EnumerateAll())
32+
foreach (var h in session.Request.Headers.EnumerateAll()) {
2233
sb.AppendLine($"{h.Key}: {h.Value}");
23-
return sb.ToString();
24-
});
25-
server.MapGet("/", () => "OK");
26-
server.MapGet("/{path}", () => "OK");
27-
server.MapPost("/", (HttpSession session) => session.Request.BodyString);
28-
server.MapPost("/{path}", (HttpSession session) => session.Request.BodyString);
34+
}
35+
return session.Response.Text(sb.ToString());
36+
}
2937

30-
static string ParseCookies(HttpSession session)
31-
{
38+
static HttpResponse ParseCookies(HttpSession session) {
3239
var sb = new System.Text.StringBuilder();
33-
foreach (var h in session.Request.Headers.EnumerateAll())
34-
{
35-
if (string.Equals(h.Key, "Cookie", StringComparison.OrdinalIgnoreCase))
36-
{
37-
foreach (var pair in h.Value.Split(';'))
38-
{
39-
var trimmed = pair.TrimStart();
40-
var eqIdx = trimmed.IndexOf('=');
41-
if (eqIdx > 0)
42-
sb.AppendLine($"{trimmed[..eqIdx]}={trimmed[(eqIdx + 1)..]}");
43-
}
44-
}
40+
foreach (var pair in session.Request.Headers.EnumerateCookies()) {
41+
sb.AppendLine($"{pair.Key}={pair.Value}");
4542
}
46-
return sb.ToString();
43+
return session.Response.Text(sb.ToString());
4744
}
4845

49-
Console.WriteLine($"SimpleW listening on http://localhost:{port}");
50-
5146
await server.RunAsync();

src/Servers/SimpleWServer/SimpleWServer.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="SimpleW" Version="26.0.0-beta.20260211-1417" />
10+
<PackageReference Include="SimpleW" Version="26.0.0-rc.20260312-1555" />
1111
</ItemGroup>
1212

1313
</Project>

0 commit comments

Comments
 (0)