当我使用邮递员时,我的处理程序可以毫无问题地获取cookie,我只需将其添加到我的标头中,现在我正在编写测试并使用clj-http将请求发送到我的休息服务器,首先我尝试手动完成并将我的cookie添加到标头中
(:status (http/post "http://localhost:8080/create/article"
{:throw-exceptions false}
{:body "...."
:headers {"Cookie" "uid-session=12"}
:content-type "application/json"}))
我也尝试使用 cookie 属性
(is (= 200 (:status (http/post "http://localhost:8080/create/article"
{:throw-exceptions false}
{:cookies {"uid-session" {:value "12"}}
:body " ... "
:content-type "application/json"}))))
调试我的应用程序,我的处理程序没有收到任何cookie,可能是什么原因?...谢谢
问题是你错误地调用了http/post
:你传递了两组不同的请求选项,但它忽略了除第一组之外的所有请求选项,即{:throw-exceptions false}
。
(我认为这是clj-http中的一个错误,在这种情况下,它的行为如此无济于事,因为它没有发出错误的信号。也许有人应该打开一个问题...
如果你这样做,它会起作用(至少它对我有用):
(http/post
"http://localhost:8080/create/article"
{:throw-exceptions false
:body "...."
:headers {"Cookie" "uid-session=12"}
:content-type "application/json"})