Pythonの標準ウェブライブラリであるurllibのurllib.requestをつかってHTTPメソッドをテストサービスサイトのhttps://httpbin.org/ で操作しました。
ここでは、サードパーティライブラリであるrequestsを使ってurllib.requestの操作と同じことをやってみようと思います。
requestsの使い方
requestsはサードパーティなのでインストールする必要があります。インストールがまだであればAnacondaを利用してるなら、Anaconda Navigatorからいストールするか、ターミナルからcondaを使ってconda install requestsでインストールします。またはpip install requestsでも構いません。
では、https://httpbin.org/ を使って、HTTP通信のテストをしていきましょう。
まず、requestsをインポートします。
import requests
GET
まずはGETからやっていきましょう。
urllib.requestでやった時と同じように次のパラメーターを用意します。
data = {‘k1’: ‘v1’, ‘k2’: ‘v2’}
コードを書いてみます。
import requests
data = {'k1': 'v1', 'k2': 'v2'}
r = requests.get('https://httpbin.org/get', params=data, timeout=1)
print(r.status_code)
print(r.text)
モジュールをインポートしてパラメータを用意します。get()にURLとパラメーターを渡します。ここではtimeoutを1秒に設定しました。1秒以内にレスポンスがなければエラーになります。statsu_codeと結果をtextで出力します。
実行するとこうなります。(ファイル名をhttpbin.pyにしてAtomで実行しています)
ステータスコードも200が表示され、結果が返されています。
POST
次はPOSTをやっていきましょう。
コードは次のように書いてみました。
import requests
data = {'k1': 'v1', 'k2': 'v2'}
r = requests.post('https://httpbin.org/post', data=data)
print(r.status_code)
print(r.json())
post()にURLを変えて渡しているだけです。出力を今回はjson形式でやってみました。
実行するとこうなります。
同様に結果が返っています。
PUT
PUTも同様です。
import requests
data = {'k1': 'v1', 'k2': 'v2'}
r = requests.put('https://httpbin.org/put', data=data)
print(r.status_code)
print(r.json())
put()にURLを変えて渡しているだけです。
結果はこうなります。
DELETE
最後にDELETEをやっておきましょう。
これも同様です。
import requests
data = {'k1': 'v1', 'k2': 'v2'}
r = requests.delete('https://httpbin.org/delete', data=data)
print(r.status_code)
print(r.json())
delete()にURLを変えて渡しています。
実行するとこうなります。
同様に結果が得られました。
まとめ
ここではPythonのurllib.requestと同様にサードパーティのrequestsを使って、HTTP通信のテストをやってみました。
urllib.requestで書いたコードよりも、requestsを使った方が簡単にかけているのでこちらの方が便利で楽な面があります。
ほとんどの目的でWeb開発にはrequestsを使う方が簡単だと言われているようです。