2015-05-04 72 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)