Определите обработчик запроса для запроса POST
. Пусть он извлечет опубликованные данные из request
:
(define (example-post request)
(define data (request-post-data/raw request))
(define str (format "got post data: ~v" data))
(displayln str)
(http-response str))
Добавьте обработчик к dispatch-rules
. Обязательно укажите, что он обрабатывает запрос POST
(не по умолчанию GET
):
;; URL routing table (URL dispatcher).
(define-values (dispatch generate-url)
(dispatch-rules
[("time") show-time-page]
[("hello") greeting-page]
[("example-post") #:method "post" example-post] ; <=== NEW
[else (error "There is no procedure to handle the url.")]))
Теперь, в оболочке, если вы делаете
curl --data "hi" http://127.0.0.1:8001/example-post
он покажет данные ответа got post data: #"hi"
--- как и консоль Racket.