From 81dd1f8bd5176ac0db2ac0df04e440edb4108aa2 Mon Sep 17 00:00:00 2001 From: GHXX Date: Thu, 29 Aug 2024 01:00:29 +0200 Subject: [PATCH] fix path parameter conversion not working --- SimpleHttpServer/HttpServer.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/SimpleHttpServer/HttpServer.cs b/SimpleHttpServer/HttpServer.cs index 1473e8a..2df5293 100644 --- a/SimpleHttpServer/HttpServer.cs +++ b/SimpleHttpServer/HttpServer.cs @@ -328,10 +328,18 @@ public sealed class HttpServer { var splittedReqPath = reqPath[1..].Split('/'); for (int i = 0; i < pparams.Count; i++) { var pparam = pparams[i]; + string paramValue; if (pparam.IsCatchAll) - convertedMParamValues[pparam.ArgPos] = string.Join('/', splittedReqPath[pparam.SegmentStartPos..]); + paramValue = string.Join('/', splittedReqPath[pparam.SegmentStartPos..]); else - convertedMParamValues[pparam.ArgPos] = splittedReqPath[pparam.SegmentStartPos]; + paramValue = splittedReqPath[pparam.SegmentStartPos]; + + if (stringToTypeParameterConverters[pparam.Type].TryConvertFromString(paramValue, out var res)) + convertedMParamValues[pparam.ArgPos] = res; + else { + await HandleDefaultErrorPageAsync(rc, HttpStatusCode.BadRequest); + return; + } } }