Привет, ребята, я занимаюсь разработкой приложения Python 3 Quart Asyncio и пытаюсь настроить тестовую среду на основе моего http API.
Quart имеет методы для создания json, форм и необработанных запросов, но без файловзапрос.Я считаю, что мне нужно собрать пакет запроса самостоятельно и опубликовать «сырой» запрос.Используя почтальона, я вижу, что запросы должны выглядеть следующим образом:
----------------------------298121837148774387758621\r\n
Content-Disposition: form-data; name="firmware"; filename="image.bin"\r\n
Content-Type: application/octet-stream\r\n
\r\n
\x00@\x00\x10\x91\xa0\t\x08+\xaa\t\x08/\xaa\t\x083\xaa\t\x087\xaa\t\x08;\xaa\t\x08\x00\x00\x00\
....
\xff\xff\xff\xff\xff\xff\xff\xa5\t\tZ\x0c\x00Rotea MLU Main V0.12\x00\x00k%\xea\x06\r\n
----------------------------298121837148774387758621--\r\n
Я бы предпочел не кодировать это сам, если существует метод, который существует.
Есть ли модульв Python, где я могу собрать необработанные пакетные данные и отправить их с помощью API Quart?
Я пытался использовать квартовые запросы:
import requests
from .web_server import app as quart_app
test_client = quart_app.test_client()
firmware_image = 'test.bin'
with open(firmware_image, 'rb') as f:
data = f.read()
files = {'firmware': (firmware_image, data , 'application/octet-stream')}
firmware_req = requests.Request('POST', 'http://localhost:5000/firmware_update', files=files).prepare()
response = await test_client.post('/firmware_update',
data=firmware_req.body,
headers={'Content-type': 'multipart/form-data'})
Буду признателен за любые предложения.
Приветствия.Митч.