我使用Python
在Flask
中运行了一个应用。
API
的端点如下所示:
@app.route('/postIt', methods =['POST'])
def postReview():
#print flask.request
if flask.request.method == 'POST':
posts = flask.request.get_json()
print posts
return str(posts)
我正在尝试使用CURL
发送请求:
curl http://127.0.0.1:5000/postIt -d @post.json -H "Content-Type: application/json"
post.json
看起来像这样:
{"post1":"3", "post2": "2", "post3":"3", "post4":"4" "post5": "5"}
效果不佳。服务器端的输出不打印任何暗示它无法获取我发送的json文件。
我调查了-d flag of CURL
并发现了这件事:
The contents of the file must already be URL-encoded.
所以我猜我必须有encoding issues with my post.json
个文件。我不确切知道这里应该使用哪种编码。请帮忙!!
答案 0 :(得分:1)
当我尝试使用您的代码时,我得到了400 Bad Request
:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>
然后我发现你的json文件实际上无效。 ,
和post4
之间缺少post5
。修好之后,我得到了正确答案:
{u'post5': u'5', u'post4': u'4', u'post3': u'3', u'post2': u'2', u'post1': u'3'}%