FaradayでCookieを永続化したい

  • このエントリーをはてなブックマークに追加

faraday-cookie-jarを使えばResponseのSet-Cookieを処理し、後続のRequestにCookieヘッダを付与することができるので、一般的なCookieとしての情報を扱うことができます。
この情報を永続化するサンプルが見つからなかったのでメモ。

1
2
3
4
5
6
7
8
9
10
require "faraday"
require "faraday-cookie-jar"

jar = HTTP::CookieJar.new
conn = Faraday.new(base_url) do |builder|
builder.adapter :net_http
builder.use :cookie_jar, jar:jar
end
resp = conn.get("https://httpbin.org/cookies/set/hello/world")
jar.save("/tmp/cookie.yaml") # YAMLで保存される

Saveメソッドの詳細はこちら

保存したCookieを読み込む場合はloadを使います。

1
2
3
4
5
6
7
jar = HTTP::CookieJar.new
jar.load("/tmp/cookie.yaml") if File.exist?("/tmp/cookie.yaml")
conn = Faraday.new(base_url) do |builder|
builder.adapter :net_http
builder.use :cookie_jar, jar:jar
end
...

参考情報