【发布时间】:2015-04-20 16:11:05
【问题描述】:
我的网络服务应该接收以下两种格式的调用:application/x-www-form-urlencoded 和 content-type application/json。
以下代码适用于表单。但是,它不适用于 json 格式。显然我需要使用request.args.get。
有没有办法修改代码,让同一个方法可以接收这两种格式的调用?
@app.route("/api/<projectTitle>/<path:urlSuffix>", methods=['POST'])
def projectTitlePage(projectTitle, urlSuffix):
apiKey = request.form.get('apikey')
userId = databaseFunctions.getApiKeyUserId(apiKey)
userInfo = databaseFunctions.getUserInfo(userId)
projectId = databaseFunctions.getTitleProjectId(projectTitle)
projectInfo = databaseFunctions.getProjectInfo(projectId)
databaseFunctions.addUserHit(userId, projectId)
databaseFunctions.addProjectHit(userId)
print request.form.to_dict(flat=False)
try:
r = requests.post(projectInfo['secretUrl'], data=request.form.to_dict(flat=False))
except Exception, e:
return '/error=Error'
return r.text
【问题讨论】:
-
你能添加你的包含以及你的请求对象是如何分配的吗?
-
您是否尝试过基于 HTTP CONTENT-TYPE 标头的请求处理分支?
-
嗨@RPhillipCastagna。您能否在答案中扩展您的评论?我认为这可能行得通!
标签: python api post flask http-post