« Back to Index

[Tornado AsyncHTTPClient POST form params example]

View original Gist on GitHub

Tags: #python #tornado #post #httpclient #asynchttpclient

Tornado AsyncHTTPClient POST JSON example.py

# synchronous api
# response = sg.client.mail.send.post(request_body=data)
# except urllib.error.HTTPError as exc:

# async implementation
api_endpoint = 'https://api.sendgrid.com/v3/mail/send'

headers = {'Authorization': f'Bearer {sendgrid_api_key}',
           'Content-Type': 'application/json'}

json_data = json.dumps(data)

response = await http_client.fetch(api_endpoint,
                                   raise_error=False,
                                   method='POST',
                                   body=json_data,
                                   headers=headers)

Tornado AsyncHTTPClient POST form params example.py

import urllib

def handle_request(http_response):
  # do something with HTTPResponse object

post_data = { 'data': 'test data' }
body = urllib.parse.urlencode(post_data)

http_client.fetch("http://0.0.0.0:8888", handle_request, method='POST', headers=None, body=body)

# handle_request callback can be omitted (and in fact is deprecated since Tornado version 5.1)

response = await http_client.fetch("http://0.0.0.0:8888", method='POST', headers=None, body=body)