我可以使用clj-http在我的http帖子中传递一个cookie

时间:2015-04-23 03:24:24

标签: clojure

当我使用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,可能是什么原因?...谢谢

1 个答案:

答案 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"})