C'è un modo per ottenere l'oggetto HttpServletRequest in un gestore Ring? Sto utilizzando Noir per sviluppare un'applicazione web. Ho bisogno di ottenere l'oggetto HttpServletRequest durante la gestione di un URI. Quindi uso la funzione (noir.request.ring-request) per recuperare la mappa di richiesta dell'anello che contiene: chiave di richiesta servlet, ma il valore è nullo. È questo il modo giusto per farlo o mi manca qualcosa?Come ottenere HttpServletRequest in un gestore Ring?
seguito è riportato il codice:
(ns my-app
(:use noir.request))
(defpage [:get "/app"] []
(str (ring-request)))
il risultato:
{:remote-addr "127.0.0.1", :scheme :http, :query-params {}, :session {}, :form-params {}, :multipart-params {}, :servlet #, :request-method :get, :query-string nil, :content-type nil, :cookies {"ring-session" {:value "eb509a65-d33a-40d2-9646-e2ff785428b0"}}, :uri "/app", :server-name "127.0.0.1", :params {}, :headers {"cookie" "ring-session=eb509a65-d33a-40d2-9646-e2ff785428b0", "accept-charset" "GBK,utf-8;q=0.7,*;q=0.3", "accept-language" "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4", "accept-encoding" "gzip,deflate,sdch", "accept" "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "user-agent" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2", "connection" "keep-alive", "host" "127.0.0.1:8080"}, :servlet-request #, :content-length nil, :server-port 8080, :character-encoding nil, :servlet-response #, :body #, :servlet-context #}
Fuori di interesse, che cosa stai cercando di fare per l'oggetto di richiesta? Forse c'è un altro modo per farlo. –