2012-10-19 75 views
0

我試圖通過web.py PUT接收XML文件的XML文件,它沒有任何working.Can一個解釋什麼是在下面的代碼使用put接收webpy

import web 

urls = (
    '/', 'index' 
) 

class index: 
    def PUT(self): 
     postdata = web.data().read() 
     fout = open('/home/test/Desktop/e.xml','w') 
     fout.write(postdata) 
     fout.close() 
     return "Hello, world!" 

if __name__ == "__main__": 
    app = web.application(urls, globals()) 
    app.run() 
問題

我得到這個是終端

"HTTP/1.1 PUT /doc.xml" - 404 Not Found 

我使用curl上傳XML

curl -o log.out -H "Content-type: text/xml; charset=utf-8" -T doc.xml "http://0.0.0.0:8760" 

回答

0
import web 

urls = ('/upload', 'index') 

class index: 
    def PUT(self): 
     datta = web.data() 
     with open("another.xml", "w") as f: 
      f.write(datta) 
     return "hello" 

if __name__ == "__main__": 
    app = web.application(urls, globals()) 
    app.run() 

這種捲曲

curl -T somexml.xml http://0.0.0.0:8080/upload 

爲我工作。我需要更改網址,因爲捲曲表現得很奇怪。或者也許在我看來。但不知何故,這段代碼不能用「/」作爲url。

0

您使用了錯誤curl選項。

如果你想在請求主體文件的內容,你應該使用-d代替-T

curl -o log.out -H "Content-type: text/xml; charset=utf-8" -d doc.xml "http://0.0.0.0:8760" 

編輯:

無論如何,這將改變你的curl成POST請求。爲了保持它作爲PUT,使用-X PUT

curl -X PUT -o log.out -H "Content-type: text/xml; charset=utf-8" -d doc.xml "http://0.0.0.0:8760"