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/
関連の記事