0

我正在尝试通过 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"
4

2 回答 2

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"
于 2012-10-19T15:38:46.717 回答
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,因为 curl 表现得很奇怪。或者在我看来。但不知何故,这段代码不能使用“/”作为 url。

于 2012-10-19T15:53:03.860 回答