Skip to content

Instantly share code, notes, and snippets.

@Integralist
Last active February 3, 2021 08:38
Show Gist options
  • Save Integralist/7c4cbd811acb2d9719b5288198a1882b to your computer and use it in GitHub Desktop.
Save Integralist/7c4cbd811acb2d9719b5288198a1882b to your computer and use it in GitHub Desktop.
[Tornado AsyncHTTPClient POST form params example] #python #tornado #post #httpclient #asynchttpclient
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)
# 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)
@dreki
Copy link

dreki commented Jan 12, 2021

Thank you, Mark!

@Integralist
Copy link
Author

@dreki you are very welcome

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment