我正在尝试为 clj-http 创建一个客户端 cookie,以便为请求设置一个 cookie。目前我有 [cookie-name cookie-val] 格式的 cookie 数据
然后我像这样调用 to-basic-client-cookie :
(clj-http.cookies/to-basic-client-cookie [cookie-name cookie-val])
但是,这会产生空指针异常。有人知道我说错了吗?clojure 很新,如果这是一个愚蠢的问题,很抱歉。
看起来值应该是一个映射,并且映射必须至少包含:value
键:
user> (cookies/to-basic-client-cookie ["foo" {:value "bar"}])
#object[org.apache.http.impl.cookie.BasicClientCookie2 0x1d0338fc "
[version: 0][name: foo][value: bar][domain: null][path: null][expiry: null]"]
在代码中,您可以看到所有其他可能的 cookie 内容键:
(defn ^BasicClientCookie2
to-basic-client-cookie
"Converts a cookie seq into a BasicClientCookie2."
[[cookie-name cookie-content]]
(doto (BasicClientCookie2. (name cookie-name)
(name (:value cookie-content)))
(.setComment (:comment cookie-content))
(.setCommentURL (:comment-url cookie-content))
(.setDiscard (:discard cookie-content true))
(.setDomain (:domain cookie-content))
(.setExpiryDate (:expires cookie-content))
(.setPath (:path cookie-content))
(.setPorts (int-array (:ports cookie-content)))
(.setSecure (:secure cookie-content false))
(.setVersion (:version cookie-content 0))))