Rolle
Rolle

Reputation: 2980

how to get POST params with cherrypy

In my very simple cherrypy server I try to get the POST data of a request. I've looked around and came up with:

class UpdateScript:
    def index(self):
        cl = cherrypy.request.body.params
        print(cl)
        return ""
    index.exposed = True

But all it prints is {}. What am I missing?

Edit: My c# code for sending the post request is:

var client = new WebClient();
byte[] response = client.UploadData(UpdateScriptUrl, "POST", System.Text.Encoding.ASCII.GetBytes("field1=value1&field2=value2"));

Upvotes: 3

Views: 7249

Answers (1)

falsetru
falsetru

Reputation: 369134

Specify desired fields as positional parameters:

class UpdateScript:
    def index(self, field1, field2):
        ...

Or as keyword arguments:

class UpdateScript:
    def index(self, **kwargs):
        ...

Then, you will get what you want.

I tested it with following python script (Python 2.7):

import urllib
print urllib.urlopen('http://localhost:8080', 'field1=b&field2=c').read()

Upvotes: 5

Related Questions