【Python】HTTPクライアント「requests」の使い方

2019年2月9日

HTTPクライアント「requests」

Pythonで外部の情報をHTTPリクエストで取得したい際、使用できるHTTPクライアントとして「requests」があります。

他にもPythonで使えるHTTPリクエストとしてurllib2等もあるらしいですが、以下の点で私はrequestsを使用することにしました。

  • 使い勝手が良いと評判であること。
  • 私が使用しているDjango-Rest-frameworkではrequestsが標準で搭載されている。

以下でrequestsの使用方法を記述していきます。動作確認はDjango-Rest-framework上で行い、postman(開発用HTTPリクエストツール)→Django-Rest-frameworkサーバ(localサーバ)→外部APIの経路で外部へリクエストを送ります。(だいぶまどろっこしい確認方法ですが…)

 

「requests」を使ってみる

環境情報

OS:Windows10

言語:Python v3.7.0

フレームワーク:Django v2.1.1 (動作確認はDjango-Rest-Frameworkを使用しています。)

動作確認用API:bitFlyer Lightning HTTP API

 

getメソッドで値を取得する

ビットフライヤーからマーケット情報を取得するAPIを実装します。(ルーティング設定などは省略します。)

apis.pyに以下のように記述し、ビットフライヤーのマーケット情報を取得するAPIを作成しました。

from rest_framework.views import APIView
from rest_framework.response import Response
from django.views.decorators.http import require_POST
from rest_framework import status
import requests

# ビットフライヤーからマーケット情報を取得する
class GetMarketApi(APIView):
	def get(self, request, format=None):
		url = "https://api.bitflyer.com/v1/getmarkets" # 取得先のURL
		response = requests.get(url)
		return Response(response.json(), status=status.HTTP_200_OK)

こちらのAPIへアクセスした結果がこちらです。

ビットフライヤーの通貨情報がとれていますね。

 

※その他のメソッドは随時更新していきます。