最終更新: kitamomonga 2010年08月24日(火) 13:32:18履歴
ページ取得時にサーバが返した HTTP レスポンスヘッダを、小文字キーの Hash で保持しているクラスです。
Mechanize::Page#response または Mechanize::File#response で使用されています。
Hash を継承しており、#[] メソッドや #[]= メソッドでのアクセス時にはキーは大文字でも小文字でも動作するようになっています。
irb> p agent.page.response['Content-Type'] "text/html" irb> p agent.page.response['content-type'] "text/html"
Mechanize1.0.0 の時点では、リクエストヘッダ(に追加するヘッダデータの Hash)はこのクラスの管理外にあります。小文字キーのヘッダでも動作するかどうかは各メソッドの解説を参照してください。
- new - Mechanize::Headers オブジェクトを生成する
- [] - ヘッダ名に対応するヘッダの値を返す
- []= - ヘッダの名前と値の組を登録する
Mechanize::Headers オブジェクトを生成します。ユーザーが使用することはあまりありません。
Hash を継承しているので、Hash[h] や Hash[key1, value1, ...] という生成動作が可能なのですが、これで生成した Headers オブジェクトのヘッダ名は自動で小文字に変換されることはありません。Mechanize 内部ではレスポンスヘッダ名は小文字であることを期待しているので、引数のキーに相当する部分は必ず小文字で指定するか、空の Headers に対して #[]= で登録を行ってください。
このオブジェクトにヘッダ名と値のペアを登録します。value が返ります。
name と value はどちらも文字列です。
name は大文字であっても小文字であっても動作します。Hash のように指定することを期待しており、headers[name] = value のように使用します。
たとえば Content-Type: text/html というヘッダを登録したい場合、response['Content-Type'] = 'text/html' でも response['content-type'] = 'text/html' でも {"content-type" => "text/html"} という登録結果になります。