Python を使用した GET および POST リクエスト

Python を使用した GET および POST リクエスト

この投稿では、Python の 2 つの HTTP (ハイパーテキスト転送プロトコル) リクエスト メソッド GET リクエストと POST リクエスト、および Python でのそれらの実装について説明します。 

HTTPとは何ですか?  

HTTP は、クライアントとサーバー間の通信を可能にするために設計されたプロトコルのセットです。これは、クライアントとサーバー間の要求/応答プロトコルとして機能します。 Web ブラウザがクライアントとなり、Web サイトをホストするコンピュータ上のアプリケーションがサーバーとなることがあります。したがって、サーバーからの応答をリクエストするには、主に 2 つの方法があります。

  1. 得る : サーバーにデータを要求します。
  2. 役職 : 処理対象のデータをサーバーに送信します。

以下は、GET メソッドと POST メソッドの基本概念を説明する簡単な図です。

Python を使用した GET および POST リクエスト 

 ここで HTTP リクエストを実行します パイソン 次のようないくつかの HTTP ライブラリを使用できます。

上記のライブラリの中で最もエレガントで単純なものは Requests です。この記事ではリクエスト ライブラリを使用します。 Requests ライブラリをダウンロードしてインストールするには、次のコマンドを使用します。

 pip install requests  

Getリクエストを行う

上の例では、Google Maps API に GET リクエストを送信することで、指定された場所の緯度経度と書式設定された住所を検索します。アン API (アプリケーション プログラミング インターフェイス) を使用すると、限定された方法でプログラムの内部機能にアクセスできます。ほとんどの場合、提供されるデータは次のとおりです。 JSON(JavaScript オブジェクト記法) 形式 (Python では辞書オブジェクトとして実装されています!)。

Python
   # importing the requests library   import   requests   # api-endpoint   URL   =   'http://maps.googleapis.com/maps/api/geocode/json'   # location given here   location   =   'delhi technological university'   # defining a params dict for the parameters to be sent to the API   PARAMS   =   {  'address'  :  location  }   # sending get request and saving the response as response object   r   =   requests  .  get  (  url   =   URL     params   =   PARAMS  )   # extracting data in json format   data   =   r  .  json  ()   # extracting latitude longitude and formatted address   # of the first matching location   latitude   =   data  [  'results'  ][  0  ][  'geometry'  ][  'location'  ][  'lat'  ]   longitude   =   data  [  'results'  ][  0  ][  'geometry'  ][  'location'  ][  'lng'  ]   formatted_address   =   data  [  'results'  ][  0  ][  'formatted_address'  ]   # printing the output   print  (  'Latitude:  %s  n  Longitude:  %s  n  Formatted Address:  %s  '   %  (  latitude     longitude    formatted_address  ))   

出力:

Python を使用した GET および POST リクエスト

推測すべき重要なポイント:

 PARAMS = {'address':location}  

GET リクエストの URL には通常、いくつかのパラメータが含まれます。リクエストのライブラリ パラメータを辞書として定義できます。これらのパラメーターは後で解析され、ベース URL または API エンドポイントに追加されます。パラメータの役割を理解するには、印刷してみてください r.url 応答オブジェクトが作成された後。次のようなものが表示されます。

 http://maps.googleapis.com/maps/api/geocode/json?address=delhi+technological+university  

これは、GET リクエストが行われる実際の URL です。

 r = requests.get(url = URL params = PARAMS)  

ここでは、リクエストとレスポンスを格納するレスポンス オブジェクト「r」を作成します。 GET リクエストを送信するため、requests.get() メソッドを使用します。渡す 2 つの引数は、URL とパラメーター ディクショナリです。

 data = r.json()  

ここで、応答オブジェクトからデータを取得するには、生の応答コンテンツを JSON タイプのデータ構造に変換する必要があります。これは、json() メソッドを使用して実現されます。最後に、JSON タイプのオブジェクトを解析して必要な情報を抽出します。

POSTリクエストを行う

この例では、 ソースコード ペーストビン.com POST リクエストを PASTEBIN API に送信することによって。まず最初に、API キーを生成する必要があります。 ここにサインアップします そして、あなたの APIキーはこちら。  

Python
   # importing the requests library   import   requests   # defining the api-endpoint   API_ENDPOINT   =   'https://pastebin.com/api/api_post.php'   # your API key here   API_KEY   =   'XXXXXXXXXXXXXXXXX'   # your source code here   source_code   =   '''   print('Hello world!')   a = 1   b = 2   print(a + b)   '''   # data to be sent to api   data   =   {  'api_dev_key'  :   API_KEY     'api_option'  :   'paste'     'api_paste_code'  :   source_code     'api_paste_format'  :   'python'  }   # sending post request and saving response as response object   r   =   requests  .  post  (  url  =  API_ENDPOINT     data  =  data  )   # extracting response text   pastebin_url   =   r  .  text   print  (  'The pastebin URL is:  %s  '   %   pastebin_url  )   

このコードの重要な特徴:

 data = {'api_dev_key':API_KEY   
'api_option':'paste'
'api_paste_code':source_code
'api_paste_format':'python'}

ここでも、いくつかのデータを API サーバーに渡す必要があります。このデータを辞書として保存します。

 r = requests.post(url = API_ENDPOINT data = data)  

ここでは、リクエストとレスポンスを格納するレスポンス オブジェクト「r」を作成します。 POST リクエストを送信するため、requests.post() メソッドを使用します。渡す 2 つの引数は、URL とデータ ディクショナリです。

 pastebin_url = r.text  

それに応じて、サーバーは送信されたデータを処理し、あなたのページのpastebin_URLを送信します。 ソースコード 簡単にアクセスできます r.テキスト。

リクエスト.ポスト このメソッドは、Facebook Graph API などを使用して FB タイムラインに投稿する Web フォームに入力して送信するなど、他の多くのタスクにも使用できます。 

考慮すべき重要な点がいくつかあります。

  • メソッドが GET の場合、すべてのフォーム データが URL にエンコードされ、 アクション クエリ文字列パラメーターとしての URL。 POST フォームを使用すると、データが メッセージ本文 HTTPリクエストの。
  • GET メソッドでは、パラメータ データはリクエスト ライン (URL) に詰め込めるものに制限されます。 2K 未満のパラメータを使用するのが最も安全ですが、サーバーによっては最大 64K まで処理します。POST メソッドではデータを送信するため、そのような問題は発生しません。 メッセージ本文 URL ではなく HTTP リクエストの。
  • GET メソッドで送信できるデータは ASCII 文字のみです。 POST メソッドにはそのような制限はありません。
  • GET は、送信されるデータが URL の一部であるため、POST に比べて安全性が低くなります。したがって、パスワードやその他の機密情報を送信する場合は、GET メソッドを使用しないでください。
クイズの作成