2015-05-04 99 views
0

我是cherrypy的新手,找不到正确的文档。如何处理Cherrypy中的正文POST请求?

如何在Cherrypy中处理POST正文请求?

注:我已经使用mod-python。在它req.read()直接给出在体后内容的内容,发送像 -

curl -X POST -d @test.xml "http://127.0.0.1:80/generate/gen.py" 

这里的test.xml是一个包含XML内容文件。

我想用CherryPy的唯一......请不要建议使用MOD-蟒蛇:P

+0

问一个问题之前做一个研究。官方CherryPy [文件上传教程](https://bitbucket.org/cherrypy/cherrypy/src/default/cherrypy/tutorial/tut09_files.py)。 SO处理[multipart](http://stackoverflow.com/q/13002676/2072035)和[non-multipart](http://stackoverflow.com/q/26576349/2072035)上传问题。 – saaj

+0

@saaj这不是一个上传,该请求将发布正文中test.xml的内容。您可以通过google等在线查找curl文档。 –

+0

上传是通过HTTP将本地文件传输到远程主机的过程的非正式名称。在你的情况下,它确实是一个上传。 Curl用原始文件内容作为'application/x-www-form-urlencoded'MIME发送POST请求,这是一个误称,因为它实际上是一个'application/octet-stream'。因此,要么自己提供请求内容类型并遵循*非多部分*链接,要么使用尊重标准并遵循其他标准的客户端。 – saaj

回答

0

可以使用cherrypy.request.body.read()方法来获取XML。例如:

class MyApp(object): 

    @cherrypy.expose 
    def my_handler(self): 
     body = cherrypy.request.body.read() 
     # process XML from body here... 
     return "I got %s bytes." % len(body)