2015-04-23 87 views
0

当我使用邮递员我的处理程序可以得到cookie没有问题,我只是将其添加到我的标题,现在我正在写我的测试和使用clj-http将请求发送到我的休息服务器,首先我尝试用手工做出来,加上我的cookie在头我可以通过一个cookie在我的http post与clj-http

(: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"})