3

在我非常简单的cherrypy 服务器中,我尝试获取请求的POST 数据。我环顾四周并想出了:

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

但它只打印 {}。我错过了什么?

编辑:我用于发送发布请求的 c# 代码是:

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

1 回答 1

5

指定所需的字段作为位置参数:

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

或作为关键字参数:

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

然后,你会得到你想要的。

我使用以下 python 脚本(Python 2.7)对其进行了测试:

import urllib
print urllib.urlopen('http://localhost:8080', 'field1=b&field2=c').read()
于 2013-10-01T12:13:08.197 回答