Python http通信のサンプル

Pythonのhttp通信のサンプルです。

確認環境
・Python 3.8.5

目次

サンプル GETを受けるhttpサーバー
  GETでサーバーにアクセスする
  POSTを受けるhttpサーバー
  POSTでサーバーにアクセスする

Pythonのコードでサーバ側とクライアント側を作成します。

GETを受けるhttpサーバー

GETを受けるhttpサーバーのサンプルです。

# coding: utf-8

from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler

class class1(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("User-Agent","test1")
        self.end_headers()
        html = "abc"
        self.wfile.write(html.encode())

ip = '127.0.0.1'
port = 8765

server = HTTPServer((ip, port), class1)

server.serve_forever()

6行目は、BaseHTTPRequestHandlerを継承しています。
7行目は、do_GetでGETを受けます。「do_Get」以外ではGETを受けられずエラーになります。
9行目は、レスポンスヘッダーに、User-Agent:test1をセットします。
12行目は、画面上にabcと表示します。

 

GETでサーバーにアクセスする

1.サーバを起動する

コマンドプロンプトを立ち上げて、上記コードを実行しサーバを起動します。

 

2.ブラウザにアドレスを入力する

次にブラウザに、http://127.0.0.1:8765/を入力すると以下のようにGETと表示されます。

サーバーから返すレスポンスヘッダーには、上記コードで設定した値が表示されます。
Server:にpython/3.8.5と書いてあります。

 

コードでアクセスする場合

以下は、Getで上記サーバにアクセスするコードのサンプルです。

# coding: utf-8
import requests

url = 'http://localhost:8765'

response = requests.get(url)
print(response.text)

6行目は、getメソッドを使用しています。
2行目のrequestsは、pipからインストールします。
Python pipでインストールする(Windows)

 

POSTを受けるhttpサーバー

POSTを受けるhttpサーバーのサンプルです。

# coding: utf-8

from http.server import HTTPServer
from http.server import BaseHTTPRequestHandler

class class1(BaseHTTPRequestHandler):
    def do_POST(self):
        self.send_response(200)
        self.send_header("User-Agent","test1")
        self.end_headers()
        html = "abc"
        self.wfile.write(html.encode())

ip = '127.0.0.1'
port = 8765

server = HTTPServer((ip, port), class1)

server.serve_forever()

7行目をdo_POSTにしています。「do_POST」以外ではPOSTを受けられずエラーになります。
12行目は、画面上にabcと表示します。

POSTでサーバーにアクセスする

以下は、POSTで上記サーバにアクセスするコードのサンプルです。

# coding: utf-8
import requests

url = 'http://localhost:8765'

test1 = {
    "color1": "赤",
    "color2": "黄"
}

response = requests.post(url, test1)
print(response.text)

11行目は、postメソッドを使用しています。
2行目のrequestsは、pipからインストールします。
Python pipでインストールする(Windows)

通信時、サーバー側のコマンドプロンプトでは以下のようにPOSTと表示されます。

以下は、Requestsの使い方のリンクです。
https://requests-docs-ja.readthedocs.io/en/latest/user/quickstart/

関連の記事

Python ソケット通信のサンプル

△上に戻る