Requestsは、人が使いやすいように設計されているPythonで書かれたApache2ライセンスのHTTPライブラリです。
冗長で扱うのが難しいHTTPリクエストを送信するためのPythonモジュールが既にたくさんあります。 Pythonの組み込みのurllib2モジュールは、必要なHTTP機能がほとんど提供されていますが、APIがまともに使えません。 簡単なことを行う(メソッドの上書きでさえ)のに、たくさんの作業量が必要になります。
それはPython的ではないので、そんなに複雑にするべきではありません。
>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
204
>>> r.headers['content-type']
'application/json'
>>> r.text
...
Requestsを使わずに同じ事をするときのコード を見て下さい。
Requestsは、HTTP/1.1のリクエストを送信することができます。 ヘッダー、フォームデータ、マルチパートファイル、簡単なPythonの辞書形式でパラメータを添付することができ、 同じ方法でレスポンスデータにアクセスすることができます。 httplibや urllib3 が一緒に組み込まれていますが、 面倒な作業などは全てRequestsでやってくれます。
- ドメインとURLの国際化
- Keep-Aliveとコネクションプーリング
- Cookieによるセッションの永続化
- ブラウザのようなSSLによる接続
- ベーシック/ダイジェスト認証
- エレガントなキー/バリューによるCookie
- 圧縮の自動的な展開
- レスポンスの本文のユニコード化
- マルチパートファイルのアップロード
- コネクションのタイムアウト
- スレッドセーフ
- HTTP(S)プロキシのサポート
Requestsをインストールするのは簡単です。
$ pip install requests
もしくは、以下でも同じです。
$ easy_install requests
しかし、easy_installを使うべきではない。
ドキュメントは、http://docs.python-requests.org/ で確認することができます。
- 公開されているissueの一覧をチェックするか、機能のアイデアやバグに関するディスカッションをするための新しいissueを作成して下さい。 まだコードに精通していない人にとって持って来いの Contributor Friendly タグがあります。
- If you feel uncomfortable or uncertain about an issue or your changes, feel free to email @sigmavirus24 and he will happily help you via email, Skype, remote pairing or whatever you are comfortable with.
- master ブランチ(もしくはそれから派生したブランチ)に修正を加えるために、 Githubの リポジトリ をフォークして下さい。
- 期待している通りに動くか修正したバグが分かるようなテストを書く。
- プルリクエストを送るとバグのメンテナーがマージして公開します。 AUTHORS に追加されるでしょう。