(define (read-request-data req) (let ((len (header-value 'content-length (request-headers req)))) ;; If the header is not available, this will read until EOF (if len (read-string len (request-port req))))) (define (print-request request) (for-each (lambda (f) (display (conc "
" (htmlize (->string ((cdr f) request))) ""))) `(("uri" . ,request-uri) ("port" . ,request-port) ("method" . ,request-method) ("major" . ,request-major) ("minor" . ,request-minor) ("headers" . ,request-headers)))) (define (request-inspector reply client instance . args) (let ((request-data (read-request-data (current-request)))) (apply reply-with-request-inspector reply client instance request-data args))) (define (reply-with-request-inspector reply client instance request-data . args) (parameterize ((http-renderer (lambda (client message) message))) (reply '(render ok) (with-output-to-string (lambda () (display "
") (display args) (display "") (display "
") (write-request (update-request (current-request) port: (current-output-port))) (display "") (display "
") (display request-data) ; use form-urldecode from uri-common (display "") (display "
") (pp (form-urldecode request-data)) (display "") (print-request (current-request)) (display "
") (display (htmlize (with-output-to-string (lambda () (pp (headers->list (request-headers (current-request)))))))) (display "") (display "
") (write-response (update-response (current-response) port: (current-output-port))) (display "") ))))) ----- (let ((request-data (read-request-data (current-request)))) (or (and-let* ( (csrf-token (if (string? client) client (client-csrf-token client))) (form-data (form-urldecode request-data))