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; + } } }