v3.0.8b3
Added header fields and cookies
Request header fields are read via map *request\RequestHeaders()
you can also add additional client Response headers via Atomic_Server_SetResponceHeader(*request.Atomic_Server_Request,key.s,value.s)
Cookies are extracted and mapped to *client\Cookies()
you can set cookies in a callback via
Atomic_Server_SetCookie(*request.Atomic_Server_Request,Cookie.s,value.s)
the cookies are available in callbacks to GET POST URIHandlers and Preprocessor functions
Code: Select all
Procedure URIfoo(*request.Atomic_Server_Request)
Protected *Atomic_Server.Atomic_Server = *request\serverid
Protected *client.Atomic_Server_Client = *request\clientID
Protected content.s,session.s,setsession.s
Protected *data
If FindMapElement(*client\Cookies(),"sessionID")
session = *client\Cookies()
Else
setsession = Str(Random($FFFFFFFF)) + "; " + "Max-Age=" + "60"
Atomic_Server_SetCookie(*request,"sessionID",setsession)
EndIf
Debug *request\Request
content.s = "<!DOCTYPE html>" + #CRLF$
content + "<html><head>" + #CRLF$
content + "<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Noto Sans&effect=fire'>" + #CRLF$
content + "<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Noto Color Emoji'>" + #CRLF$
content + "<meta charset='utf-8' />" + #CRLF$
content + "<title>" + *Atomic_Server\Title + "</title>" + #CRLF$
content + "<style> body { background-color: #6600ff; margin: 10%;} h1 { font-family: 'Noto Sans', sans-serif; color: white; text-align: center; } " + #CRLF$
content + "p { font-family: 'Noto Sans', sans-serif; font-size: 18px; text-align: center; color: white;} " + #CRLF$
content + "h2 { font-family: 'Noto Color Emoji'; text-align: center; } " + #CRLF$
content + "label { font-family: 'Noto Sans', sans-serif; font-size: 30px; text-align: left; color: white;} " + #CRLF$
content + "input[type=text], Select { width: 100%; padding: 12px 20px; margin: 8px 0; display: inline-block; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; } " + #CRLF$
content + "input[type=submit] { width: 100%; background-color: #0099cc; color: white; padding: 14px 20px; margin: 8px 0; border: none; border-radius: 4px; cursor: pointer; } </style>" + #CRLF$
content + "</head><body><h1 class='font-effect-fire' style='text-align:center';>" + *Atomic_Server\Title + "</h1>"+ #CRLF$
content + "<h2 style='text-align:center';>" + Atomic_Server_Chr($2622) + "</h2>"
ForEach *request\parameters()
content + "<p>" + MapKey(*request\parameters()) + "=" + *request\parameters() +"</p>"
Next
If session <> ""
content + "<p>" + "sessionID =" + session + "</p>"
EndIf
content + "<body></html>"
*data = UTF8(content)
*request\ContentType = "text/html" ;Set the contentType
ProcedureReturn *data
EndProcedure