requests
requests
json形式でバイナリファイルを送信する方法
base64に一度エンコードし、utf-8でデコードし文字列にして送信する。
import requests
import json
import base64
url = 'http://localhost'
headers = { "x-api-key": "APIキーなど" }
file_data = open("test.csv", "rb").read()
b64encoded = base64.b64encode(file_data).decode('utf-8')
json_data = {"file_data": b64encoded, "file_name": "test.csv"}
response = requests.post(url, data = json.dumps(json_data), headers = headers)
print(response.json())
受信側では、逆方向にutf-8でencodeし、base64でデコードする。
デコード結果はバイナリであるため、csvの場合は更にここからdecode('utf-8')をすれば文字情報になる。
import base64
base64.b64decode(b64encoded.encode('utf-8'))
# base64.b64decode(b64encoded.encode('utf-8')).decode('utf-8') # さらにdecodeすれば文字列になる
multipart/form-dataでバイナリファイルを送信する方法
こちらの方法では、シンプルにバイナリのまま送信できる。
import requests
url = 'http://localhost'
headers = { "x-api-key": "APIキーなど" }
file_data = open("test.csv", 'rb').read()
files = { 'uploadFile': ("test.csv", file_data, "text/csv") }
response = requests.post(url, headers=headers, files=files)
print(response.json())
Last updated