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)