Zum Beispiel muss ich Daten von meinem imdb.com-Konto analysieren. Also, die Aufgabe ist, die aktuell geloggte Seite zu bekommen. Ich habe den "id" -Cookie vom Browser genommen. Und make GET-Anfrage, aber es funktioniert nicht.Wie setze ich einen Cookie in 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}))
Ich denke, ich muss meinen ID-Cookie auf clj-http.cookies/cookie-store setzen. Aber wie?
Danke, Piotrek! Ich habe keine Ahnung, warum 'clj-http.cookies/add-cookie' nicht verfügbar ist, wenn ich [clj-http" 3.1.0 "] und" require "für' clj-http.cookies' natürlich benutze. Also bin ich Code Quellcode zu meinem Code ziehen, aber es funktioniert auch nicht: _ClassCastException clojure.lang.PersistentArrayMap kann nicht in org.apache.http.cookie.Cookie imdb.core/add-cookie (Kern. CLJ: 35) _ My def für Cookie: '(def zz { "zz"{: verwerfen falsch, : domain "imdb.com", : Pfad "/", : Sicherung falsch, : Wert" nicht "}})' Ich bin fest mit ihm ¯ \ _ (ツ) _/¯ – Tim
Sie müssen Ihre Cookie-Spezifikation in 'org.apache.http.cookie ClientCookie' mit 'clj-http.cookies/zu konvertieren "basic-client-cookie", wobei Ihre Cookie-Spezifikation ein Tupel "[Cookie-Name Cookie-Inhalt]" ist. Haben Sie versucht, den Anmeldeendpunkt aufzurufen und dann mit demselben Cookie-Speicher einen Anruf zu erhalten? –