Sto provando a usare Tornado per avviare un server e inserirvi una stringa. Ho trovato molti esempi su come scrivere il metodo post nella classe del gestore, ma nessun esempio su come scrivere la richiesta di post. Il mio codice corrente causa l'esecuzione del metodo post, ma get_argument non sta ottenendo i dati - stampa solo l'impostazione predefinita "Nessun dato ricevuto" ogni volta. Che cosa sto facendo di sbagliato?Come utilizzare il metodo POST in Tornado?
Il mio codice è simile al seguente:
class MainHandler(tornado.web.RequestHandler):
def post(self):
data = self.get_argument('body', 'No data received')
self.write(data)
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
def handle_request(response):
if response.error:
print "Error:", response.error
else:
print response.body
tornado.ioloop.IOLoop.instance().stop()
application.listen(8888)
test = "test data"
http_client = tornado.httpclient.AsyncHTTPClient()
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, body=test)
tornado.ioloop.IOLoop.instance().start()
sta mettendo la stringa Voglio inviare nel "corpo" parametro la cosa giusta da fare? In alcuni esempi che ho visto, come here, sembra che la gente creare i propri parametri, ma se provo ad aggiungere un nuovo parametro per la richiesta, come
http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, data=test)
ottengo solo un errore che dice "TypeError: init() ottenuto un argomento parola chiave "dati" imprevisto "
Grazie!
esattamente quello che mi serviva, grazie! – user1363445