0
votes

Comment AIOHTTP Demande Post Fichiers Liste des demandes Python Module?

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 xxx pré>

et request.files est Aucun code> p>

Ceci est Trackback 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()


2 commentaires

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.


3 Réponses :


2
votes

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)


0 commentaires

0
votes

Client: xxx

serveur: xxx


0 commentaires

0
votes

Pour recevoir des données binaires, vous pouvez utiliser Lire code> Fonction de la demande.

Par exemple, la réception d'un fichier texte ressemble à: p>

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")


0 commentaires