Python `requests` でPOSTリクエストを使用する方法
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
requests.post()
メソッドは、フォームデータとJSONデータの送信を簡素化します。- ファイルのアップロードやカスタムヘッダーの設定も簡単に行えます。
- 堅牢なアプリケーションのためには、レスポンスオブジェクトを適切に処理することが重要です。
Pythonのrequests
ライブラリは、POSTメソッドを使用してサーバーにデータを送信するなど、HTTPリクエストを行うための強力なツールです。この記事では、requests
ライブラリを使用してPOSTリクエストを実行する方法の概要を説明し、さまざまなデータ形式と構成について解説します。
requests
ライブラリのインストール
requests
ライブラリを使用する前に、Python環境にインストールされていることを確認してください。pipを使用してインストールできます。
pip install requests
基本的なPOSTリクエストの作成
POSTリクエストを送信するには、requests.post()
メソッドを使用し、ターゲットURLと送信するデータを指定します。デフォルトでは、データはContent-Type
ヘッダーがapplication/x-www-form-urlencoded
で送信されます。
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
この例では、辞書data
がフォームエンコードされ、POSTリクエストのボディで送信されます。サーバーからのレスポンスが出力されます。
JSONデータの送信
JSON形式のデータを期待するAPIとやり取りする場合、post()
メソッドのjson
パラメータを使用できます。この方法では、データが自動的にJSONとしてエンコードされ、Content-Type
ヘッダーがapplication/json
に設定されます。
import requests url = 'https://httpbin.org/post' json_data = {'key': 'value'} response = requests.post(url, json=json_data) print(response.text)
この方法を使用すると、手動でデータをエンコードしてヘッダーを設定するよりも、JSONデータを送信するプロセスが簡素化されます。
ファイルのアップロード
requests
ライブラリは、files
パラメータを使用したファイルアップロードもサポートしています。ファイルをアップロードするには、ファイル名をキーとし、ファイルオブジェクトを値とする辞書を渡します。
import requests url = 'https://httpbin.org/post' files = {'file': open('example.txt', 'rb')} response = requests.post(url, files=files) print(response.text)
これにより、ファイルがmultipart/form-dataリクエストとして送信されます。
カスタムヘッダーの設定
POSTリクエストにカスタムヘッダーを含めるには、headers
パラメータを使用します。これは、Authorization
やカスタムContent-Type
などのヘッダーを設定するのに役立ちます。
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'} response = requests.post(url, data=data, headers=headers) print(response.text)
ヘッダーがサーバーの期待どおりであることを確認して、問題を回避してください。
レスポンスの処理
POSTリクエストからのレスポンスは、便利な属性とメソッドを含むResponse
オブジェクトです。
response.status_code
: レスポンスのHTTPステータスコード。response.text
: レスポンスのコンテンツ(Unicode)。response.json()
: レスポンスをJSONとして解析し、結果を返します。
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) if response.status_code == 200: print('成功!') print(response.json()) else: print('エラーが発生しました。')
レスポンスを適切に処理することで、アプリケーションがさまざまな結果に適切に対応できるようになります。
結論
Pythonのrequests
ライブラリは、HTTP POSTリクエストの作成プロセスを簡素化します。フォームデータ、JSON、またはファイルを送信する場合でも、requests
はこれらのタスクを効率的に処理するための簡単で柔軟なAPIを提供します。
FAQs
data=
の代わりにrequests.post()
でjson=
パラメータを使用します。
はい、files
パラメータでファイルオブジェクトを渡すことで可能です。
headers
辞書に含めて、post()
呼び出しに渡します。
Leapcellは、Pythonプロジェクトをホストするための最適な選択肢です。
Leapcellは、Webホスティング、非同期タスク、Redisのための次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発。
無制限のプロジェクトを無料でデプロイ
- 使用量に応じてのみ支払い - リクエストなし、課金なし。
比類なきコスト効率
- アイドル料金なしの従量課金制。
- 例:25ドルで平均応答時間60msで694万リクエストをサポート。
効率的な開発者体験
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実用的な洞察のためのリアルタイムメトリクスとロギング。
容易なスケーラビリティと高性能
- 容易に高い並行性を処理するための自動スケーリング。
- 運用オーバーヘッドゼロ - 構築に集中するだけ。
詳細については、ドキュメントをご覧ください。
Xでフォローしてください:@LeapcellHQ