概要
おそらく http.client
というのが標準なのでそれを使ってみました
環境
- macOS X 10.13.6
- Python 3.6.5
GET
とりあえず基本の GET です
- vim get.py
from http.client import HTTPSConnection
con = HTTPSConnection('kaka-request-dumper.herokuapp.com')
con.request('GET', '/')
res = con.getresponse()
body = res.read()
print(body)
- python3 get.py
GET + body 付き
vim get_with_body.py
from http.client import HTTPSConnection
import json
con = HTTPSConnection('kaka-request-dumper.herokuapp.com')
b = str({'key': 'value'})
h = {'content-type': 'application/json'}
con.request('GET', '/', body=b, headers=h)
res = con.getresponse()
body = json.loads(res.read())
print(body)
print(body['body'])
print(body['media_type'])
python3 get_with_body.py
POST + body 付き
vim post_with_body.py
from http.client import HTTPSConnection
import json
con = HTTPSConnection('kaka-request-dumper.herokuapp.com')
b = str({'key': 'value'})
h = {'content-type': 'application/json'}
con.request('POST', '/', body=b, headers=h)
res = con.getresponse()
body = json.loads(res.read())
print(body)
print(body['method'])
print(body['body'])
print(body['media_type'])
python3 post_with_body.py
最後に
Python3 の http.client
を使ってみました
返り値は byte になっているので適宜変更してあげましょう
一点ポイントとしては res.read()
は 2 回目に呼び出すと空になっています
この仕様は他の言語の HTTP Client でも普通ですが一応気をつけましょう
今回は https のサイトにアクセスしたので HTTPSConnection
を使いました
http のサイトにアクセスするのであれば HTTPConnection
を使いましょう
0 件のコメント:
コメントを投稿