GAE/Pyでrequestsを使う

September 24, 2016
googleappengine python

今までGAEから他サービスへhttpのリクエストを投げる場合はurlfetchを使っていました(それしか使えなかった?)。 最近マニュアルを見たらurlfetch以外にもurllib2やrequestsを使えるとあったので、requestsでリクエストする方法の紹介します。

Issuing HTTP(S) Requests

必要なもの

  • requests
  • requests_toolbelt

2つをpipでそのままインストールするのではなく、 GEAで使う場合はlibフォルダなんかににライブラリを入れます

Requesting a library

$ pip install requests requests_toolbelt -t lib

使いかた

import requests
import requests_toolbelt.adapters.appengine

# requestsにモンキーパッチを当てて内部でurlfetchを使うようにします
requests_toolbelt.adapters.appengine.monkeypatch()

あとは通常のrequestsと同じように使えます

class MainHandler(webapp2.RequestHandler):
    def get(self):
        url = 'http://example.com'
        r = requests.get(url)
        self.response.write(r.content)

requestsが使えるようになるとrequests-oauthlibも使えるので、OAuth系の処理を行うときに比較的楽に実装できるようになります。

comments powered by Disqus