Post json using python requests

470    Asked by Ayushigupta in Python , Asked on Apr 18, 2021

I need to POST a JSON from a client to a server. I'm using Python 2.7.1 and simplejson. The client is using Requests. The server is CherryPy. I can GET a hard-coded JSON from the server (code not shown), but when I try to POST a JSON to the server, I get an error "400 Bad Request".

Here is my client code:

data = {'sender': 'Alice', 'receiver': 'Bob', 'message': 'We did it!'}

data_json = simplejson.dumps(data)

payload = {'json_payload': data_json}

r = requests.post("http://localhost:8080", data=payload)

Here is the server code.

class Root(object):

     def __init__(self, content):

           self.content = content

           print self.content # this works

          exposed = True

    def GET(self):

         cherrypy.response.headers['Content-Type'] = 'application/json'

        return simplejson.dumps(self.content)

    def POST(self):

         self.content =        simplejson.loads(cherrypy.request.body.read())

Any solution?

Answered by Ayushi gupta

To post JSON using Python Requests you can use the below-mentioned code it will be helpful:-

url = "http://localhost:8080"

data = {'sender': 'Alice', 'receiver': 'Bob', 'message':'We did it!'}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(data), headers=headers)

This code will resolve python requests post json issue.



Your Answer

Interviews

Parent Categories