我正在尝试通过web.py中的PUT接收xml文件,但它无法正常工作。任何人都可以解释下面代码中的问题
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 :(得分: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"
答案 1 :(得分: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
为我工作。我需要更改网址,因为卷曲表现得很奇怪。或许它似乎在我看来。但不知何故,这段代码不能用“/”作为网址。