2016-08-22 11 views
1

たとえば、私のimdb.comアカウントからデータを解析する必要があります。したがって、タスクは現在ログに記録されたページを取得します。私はブラウザから「id」クッキーを取得しました。そしてGETリクエストを行いますが、うまくいきません。clj-httpでCookieを設定するには?

私はidのクッキーをclj-http.cookies/cookie-storeに設定する必要があると思います。しかしどうですか?

答えて

0

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に呼び出すことができます。これは、ブラウザからのクッキーのコピーのような手作業による手続きを経ることなく、ロジックを繰り返し実行します。

+0

ありがとう、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

+0

'clj-http.cookies/toを使って、あなたのクッキー仕様を' org.apache.http.cookie ClientCookie'に変換する必要があります-basic-client-cookie'ここで、あなたのクッキー仕様はタプル '[cookie-name cookie-content]'です。ログインエンドポイントに電話してから、同じCookieストアでGETコールを試行しましたか? –

関連する問題