bmentink 08/30/2023 09:13 PMIn the following http.Request handler I am trying to grab a number that the user types in a form page /start.html
store it away, then force a page change back to index.html
The code works apart from the last two lines, it won't change to the index page .. Handler is:
handle request/http.Request writer/http.ResponseWriter -> none:
query := url.QueryString.parse request.path
resource := query.resource
if resource == "/":
if bucket["element"]:
resource = "index.html"
else:
resource = "start.html" // 1st time power up, throw up the start.html page
if resource == "/start": resource = "start.html"
if resource == "/extended": resource = "extended.html"
if resource.starts_with "/": resource = resource[1..]
TEMPORARY_REDIRECTS.get resource --if_present=:
writer.headers.set "Location" it
writer.write_headers 302
return
result := RESOURCE_MAP.get resource --if_absent=:
writer.headers.set "Content-Type" "text/plain"
writer.write_headers 404
writer.write "Not found: $resource"
return
if result is string:
result = result.substitute: look_up_variable it
writer.headers.set "Content-Type" (mime_type resource)
if compression_type resource:
writer.headers.set "Content-Encoding" (compression_type resource)
writer.write result
if query.parameters.is_empty: return
Element := query.parameters["Element"]
element-size := int.parse Element
bucket["element"] = element-size // Save new element size to flash bucket.
writer.headers.set "Location" "index.html"
writer.write_headers 302