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



当我使用邮递员时,我的处理程序可以毫无问题地获取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"})

最新更新