目次
(確認環境:Python 3)
Pythonのコードでサーバ側とクライアント側を作成します。
GETを受けるhttpサーバー
GETを受けるhttpサーバーのサンプルです。
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()
5行目のdo_GetでGETを受けます。「do_Get」以外ではGETを受けられずエラーになります。
7行目は、レスポンスヘッダーに、User-Agent:test1をセットします。
10行目は、画面上にabcと表示します。
GETでサーバーにアクセスする
1.サーバを起動する
コマンドプロンプトを立ち上げて、上記コードを実行しサーバを起動します。
![]()
2.ブラウザにアドレスを入力する
次にブラウザに、http://127.0.0.1:8765/を入力すると以下のようにGETと表示されます。

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

コードでアクセスする場合
以下は、Getで上記サーバにアクセスするコードのサンプルです。
import requests
url = 'http://localhost:8765'
response = requests.get(url)
print(response.text)
5行目は、getメソッドを使用しています。
1行目のrequestsは、pipからインストールします。
Python pipでインストールする(Windows)
POSTを受けるhttpサーバー
POSTを受けるhttpサーバーのサンプルです。
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()
5行目をdo_POSTにしています。「do_POST」以外ではPOSTを受けられずエラーになります。
10行目は、画面上にabcと表示します。
POSTでサーバーにアクセスする
以下は、POSTで上記サーバにアクセスするコードのサンプルです。
import requests
url = 'http://localhost:8765'
test1 = {
"color1": "赤",
"color2": "黄"
}
response = requests.post(url, test1)
print(response.text)
10行目は、postメソッドを使用しています。
1行目のrequestsは、pipからインストールします。
Python pipでインストールする(Windows)
通信時、サーバー側のコマンドプロンプトでは以下のようにPOSTと表示されます。
![]()
以下は、Requestsの使い方のリンクです。
https://requests-docs-ja.readthedocs.io/en/latest/user/quickstart/
関連の記事
