Например, мне нужно проанализировать данные из моей учетной записи imdb.com. Таким образом, задача состоит в том, чтобы получить текущую страницу. Я взял cookie «id» из браузера. И сделайте запрос GET, но он не работает.Как установить cookie в clj-http?
(ns imdb.core
(:require [clj-http.client :as client])
(def ^:dynamic *base-url* "http://www.imdb.com/")
(def id {"id" {:value "my_value"
:domain "imdb.com"
:secure true
:max-age 3600}})
(defn get-my-page []
(client/get *base-url* {:cookies id}))
Я думаю, что мне нужно установить свой файл cookie для clj-http.cookies/cookie-store. Но как?
Спасибо, Piotrek! Я понятия не имею, почему «clj-http.cookies/add-cookie» недоступен, когда я использую [clj-http «3.1.0»] и «требую» для 'clj-http.cookies', конечно. Так что я вытаскиваю исходный код defn в свой код, но он также не работает: _ClassCastException clojure.lang.PersistentArrayMap нельзя отнести к org.apache.http.cookie.Cookie imdb.core/add-cookie (core. CLJ: 35) _ Моей Защита для печенья: '(DEF ZZ { "ZZ"{: отбросить ложный, : домен "imdb.com", : путь "/", : обеспечить ложное, : значение" non "}})' Я застрял с ним ¯ \ _ (ツ) _/¯ – Tim
Вам нужно преобразовать вашу спецификацию cookie в 'org.apache.http.cookie ClientCookie', используя' clj-http.cookies/to -basic-client-cookie', где ваш спецификатор cookie является кортежем '[cookie-name cookie-content]'. Вы пытались вызвать конечную точку входа, а затем GET-вызов с тем же хранилищем файлов cookie? –