1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
(define-module (urlencoded-form)
#:use-module (rnrs bytevectors)
#:use-module (web uri)
#:export (parse-urlencoded-form))
(define (parse-urlencoded-form body)
(define str (utf8->string body))
(define headers-raw (string-split str #\&))
(define headers (map (lambda (str)
(define parts (string-split str #\=))
(if (> (length parts) 1)
(cons (list-ref parts 0)
(uri-decode (list-ref parts 1)))
(cons (list-ref parts 0)
#f)))
headers-raw))
headers)