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



