Python 3 JSON Post

Uses the https://httpbin.org /anything JSON echo service to demonstrate how to POST JSON encoded data to a URI, using the great requests library

  • Have python3 installed on your machine
  • Install directly with pip3 or if you are doing due diligence create a virtual environment
  • You should verify that you have the proper python libraries installed {requests, json, pprint} Requests to do the acutal request, json for formatting of dictionaries, and pprint to do pretty printing of the json reponse

Installation steps for pip packages if you are unfamiliar

pip3 install <package> -> pip3 install requests or create a requirements.txt file to run the pip3 install -r requirements.txt file

  • Run the file or text interactively python3 <file_with_following_contents>

Code

import requests
import json
import pprint

dto = {
  'message': 'mittens on kittens'
}
response = requests.post(url = "https://httpbin.org/anything",
  data = json.dumps(dto),
  headers = {'Content-type': 'application/json', 'Accept': 'application/json'})
printer = pprint.PrettyPrinter(indent=2)
printer.pprint(response.json())

Expected Response

{ 'args': {},
  'data': '{"message": "mittens on kittens"}',
  'files': {},
  'form': {},
  'headers': { 'Accept': 'application/json',
               'Accept-Encoding': 'gzip, deflate',
               'Content-Length': '33',
               'Content-Type': 'application/json',
               'Host': 'httpbin.org',
               'User-Agent': 'python-requests/2.22.0'},
  'json': {'message': 'mittens on kittens'},
  'method': 'POST',
  'origin': '71.15.103.85, 71.15.103.85',
  'url': 'https://httpbin.org/anything'}