Python3でPOST通信する
Pythonを書き始めて1日目
外部のAPIを叩きたいと思って 試行錯誤の結果できた、サンプルコード
importのモジュール群とかよくわかってないものが多すぎるが、 Python初日での理解で、どうにか動いたというレベルのものはできた
※headersでjsonエンコードをしてるのは、自分が使いたいAPIの仕様のため
詰まったのは、リクエストボディの値の作り方
valueが配列になるようなやつは、key名に[]
をつけてあげればOKだった
import json # jsonを扱うためのもの? import urllib.request # HTTP通信する際に使うもの? import urllib.parse # URLエンコードするために必要なもの? url = 'APIのURL' method = 'POST' # リクエストヘッダ情報 headers_object = { 'key': 'value' } headers = { 'key': json.dumps(headers_object).encode() } # リクエストボディ情報 data_object = { 'string': 'string_value', 'int': int_value, 'array[]': 'array_value', } data = urllib.parse.urlencode(data_object).encode() response = urllib.request.Request(url, data=data, headers=headers, method=method) with urllib.request.urlopen(response) as res: body = res.read().decode() print(body)