Je veux que Multi Post utiliser AIOHTTP.
Et j'ai besoin d'un message avec fichier.
Mais mon code ne fonctionne pas
Ceci est mon code et Ceci est Trackback P> request.files est Aucun code> p>
def get_uploaded_file(file_path):
f = open(file_path, "rb")
file = DjangoFile(f)
uploaded_file = InMemoryUploadedFile(file, None, file_path, "text/plain", file.size, None, None)
return uploaded_file
file = get_uploaded_file(path)
async with aiohttp.request('post', url, data={'key': f}) as response:
return await response.text()
3 Réponses :
Selon Publier un mot multipart Fichier - client QuickStart - Documentation AIOHTTP , vous devez spécifier le fichier de fichier code> dictionnaire code> (valeur doit être un objet ressemblant à un fichier):
import asyncio import aiohttp async def main(): url = 'http://httpbin.org/anything' with open('t.py', 'rb') as f: async with aiohttp.ClientSession() as session: async with session.post(url, data={'key': f}) as response: return await response.text() text = asyncio.run(main()) # Assuming you're using python 3.7+ print(text)
Client: serveur: p>
Pour recevoir des données binaires, vous pouvez utiliser Par exemple, la réception d'un fichier texte ressemble à: p> Lire code> Fonction de la demande.
from aiohttp import web
async def receive_post_request(request)
data = (await request.read()).decode('utf-8')
return web.Response(text='data', content_type="text/html")
montrer la sortie souhaitée
Si la réponse que vous avez reçue a fonctionné, s'il vous plaît Acceptez-le . De plus, si vous avez des questions plus (non liées), veuillez faire une question distincte pour chacun d'eux.