【问题标题】:Using clj-http.cookies to set cookie in request使用 clj-http.cookies 在请求中设置 cookie
【发布时间】:2018-05-22 22:50:50
【问题描述】:

我正在尝试为 clj-http 创建客户端 cookie,以便为请求设置 cookie。目前我的 cookie 数据格式为 [cookie-name cookie-val]

然后我像这样调用 to-basic-client-cookie:

(clj-http.cookies/to-basic-client-cookie [cookie-name cookie-val])

但是,这会产生空指针异常。有人知道我说错了吗? clojure 很新,如果这是一个愚蠢的问题,很抱歉。

【问题讨论】:

    标签: cookies clojure clj-http


    【解决方案1】:

    看起来值应该是一个映射,并且映射必须至少包含: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))))
    

    【讨论】:

      猜你喜欢
      • 2016-12-28
      • 2014-02-08
      • 2016-07-21
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2014-10-19
      • 1970-01-01
      相关资源
      最近更新 更多