当我使用postman时,我的处理程序可以毫无问题地获取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,可能是什么原因?...谢谢
答案 0 :(得分:1)
问题在于您错误地调用http/post
:您正在传递两组不同的请求选项,但它会忽略除第一个之外的所有选项,即{:throw-exceptions false}
。
(我认为这是clj-http中的一个错误,它在这种情况下表现得如此无益,因为没有发出错误信号。也许有人应该open an issue ...)
如果你这样做它会起作用(至少它对我有用):
(http/post
"http://localhost:8080/create/article"
{:throw-exceptions false
:body "...."
:headers {"Cookie" "uid-session=12"}
:content-type "application/json"})