たとえば、私のimdb.comアカウントからデータを解析する必要があります。したがって、タスクは現在ログに記録されたページを取得します。私はブラウザから「id」クッキーを取得しました。そしてGETリクエストを行いますが、うまくいきません。clj-httpでCookieを設定するには?
私はidのクッキーをclj-http.cookies/cookie-storeに設定する必要があると思います。しかしどうですか?
たとえば、私のimdb.comアカウントからデータを解析する必要があります。したがって、タスクは現在ログに記録されたページを取得します。私はブラウザから「id」クッキーを取得しました。そしてGETリクエストを行いますが、うまくいきません。clj-httpでCookieを設定するには?
私はidのクッキーをclj-http.cookies/cookie-storeに設定する必要があると思います。しかしどうですか?
clj-http
は、使用する必要があるclj-http.cookies
の名前空間を提供します。
You can setup your cookie storeと入力し、ブラウザからCookieを抽出してclj-http.client/get
と設定して:cookie-store
と入力してclj-http.cookies/add-cookie
を呼び出します。
一方、マニュアルに記載されているように、複数のHTTP呼び出しでCookieを維持するだけで、ログインページを直接clj-http
に呼び出すことができます。これは、ブラウザからのクッキーのコピーのような手作業による手続きを経ることなく、ロジックを繰り返し実行します。
ありがとう、Piotrek! 私は[clj-http "3.1.0"]と '' clj-http.cookies'のために "require"を使用すると、なぜ 'clj-http.cookies/add-cookie'が利用できないのか分かりません。だから私は自分のコードにdefnしたソースコードを取得しますが、それもうまくいきません: _ClassCastException clojure.lang.PersistentArrayMapをorg.apache.http.cookie.Cookieにキャストすることはできませんimdb.core/add-cookie(core。 CLJ:35)_ クッキーのための私のDEF: '(DEF ZZ { "ZZ"{:ドメイン "imdb.com"、 :パス "/"、 :偽、 を破棄確保偽、 :値"私はそれに固執しています。 – Tim
'clj-http.cookies/toを使って、あなたのクッキー仕様を' org.apache.http.cookie ClientCookie'に変換する必要があります-basic-client-cookie'ここで、あなたのクッキー仕様はタプル '[cookie-name cookie-content]'です。ログインエンドポイントに電話してから、同じCookieストアでGETコールを試行しましたか? –