我想在Flask中实现WebDAV服务器。
服务器收到OPTIONS
个HTTP请求时,必须发回标头DAV: 1
的响应。
但是,我没有这样做...
这是我的Flask应用
from flask import Flask, make_response
app = Flask(__name__)
@app.route("/")
def options(methods=["GET", "OPTIONS"]):
resp = make_response("hello")
resp.headers['DAV'] = '1'
return resp
当我发送GET
请求时,标头已正确设置:
curl -i -X GET http://127.0.0.1:5000/
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 5
DAV: 1
Server: Werkzeug/1.0.1 Python/3.8.1
Date: Wed, 22 Apr 2020 23:38:51 GMT
但是当我发送OPTIONS
请求时,标头丢失了:
curl -i -X OPTIONS http://127.0.0.1:5000/
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Allow: OPTIONS, GET, HEAD
Content-Length: 0
Server: Werkzeug/1.0.1 Python/3.8.1
Date: Wed, 22 Apr 2020 23:38:54 GMT
(我们注意到响应主体也丢失了。但这很好,我暂时不需要)
如何更改此默认行为?
(我将Flask 1.1.2与Python 3.8.1结合使用)