Использование clj-http.cookies для установки cookie в запросе - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать файл cookie клиента для clj-http, чтобы я мог установить файл cookie для запроса.В настоящее время у меня есть данные cookie в формате [cookie-name cookie-val]

. Затем я вызываю «basic-client-cookie» следующим образом:

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

Однако это приводит к исключению нулевого указателя.Кто-нибудь знает, правильно ли я это называю?Довольно плохо знаком с clojure, так что извините, если это глупый вопрос.

1 Ответ

0 голосов
/ 23 мая 2018

Похоже, что значение должно быть картой, и карта должна по крайней мере содержать ключ :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))))
...