(define (read-from-request reader) (let* ((req (current-request)) (headers (request-headers (current-request))) (content-length (header-value 'content-length headers))) (cond ((and content-length (zero? content-length)) "") ((not content-length) (error 'echo-service "Set content-length, sloppy client")) (else (call-with-input-string (read-string content-length (request-port req)) reader)))))