我将POST请求从Android发送到我的服务器(python / Flask)
URL url = new URL("www.xxx.com/yyy");
HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
httpCon.setRequestMethod("POST");
httpCon.setRequestProperty("Content-Type", "binary/octet-stream");
DataOutputStream out = new DataOutputStream(httpCon.getOutputStream());
out.write(bytes);
out.flush();
out.close();
int status = httpCon.getResponseCode();
...
我用Flask收到了这个
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/yyy', methods=['POST'])
@cross_origin(headers=['Content-Type'])
@def get_checkpoint_config():
# ...
首先奇怪的事情:有时服务器记录
WARNING:tornado.access:405 GET /yyy
但这是一个POST!
稍微有些奇怪:有些时候我没有得到405,但request.data
为空。
我怀疑CORS配置有些可疑。我将@cross_origin
替换为@crossdomain(origin='*')
(来自此snippet),但我有相同的行为
我该如何解决这个问题?
由于
答案 0 :(得分:0)
这不是一个完整的答案,但幸运的是我的请求不是太大,所以我把数据作为GET参数,我可以删除与cors
相关的所有内容(Fask的交叉原点扩展名)和它工作。问题仍然存在。