python无法向简单站点api发出请求。烧瓶和请求
我正在尝试为我的网站创建简单的API。我用flask创建了路线:python无法向简单站点api发出请求。烧瓶和请求,python,flask,socket.io,flask-socketio,Python,Flask,Socket.io,Flask Socketio,我正在尝试为我的网站创建简单的API。我用flask创建了路线: @api.route('/api/rate&message_id=<message_id>&performer=<performer_login>', methods=['POST']) def api_rate_msg(message_id, performer_login): print("RATE API ", message_id, ' ', performer_id)
@api.route('/api/rate&message_id=<message_id>&performer=<performer_login>', methods=['POST'])
def api_rate_msg(message_id, performer_login):
print("RATE API ", message_id, ' ', performer_id)
return 400
注意,数据
变量是从客户端发送的,并且是正确的(我已经检查过了)。打印(r.status\u code)
不要执行太多我错在哪里<请原谅我的英语不好:(
如果感兴趣,此api函数必须提高存储在mongodb中的消息速率。从api路由中删除以下部分
&message_id=<message_id>&performer=<performer_login
&message\u id=&performer=不要将&message\u id=&performer=
放在路由字符串中。而是从请求.args
中获取这些参数
试试看:
from flask import request
...
@api.route('/api/rate', methods=['POST'])
def api_rate_msg():
print(request.args)
return ''
我已经用httpie对其进行了测试:
$ http -v POST :5000/api/rate message_id==123 performer_login==foo
POST /api/rate?message_id=123&performer_login=foo HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 0
Host: localhost:5000
User-Agent: HTTPie/0.9.8
HTTP/1.0 200 OK
Content-Length: 0
Content-Type: text/html; charset=utf-8
Date: Sun, 02 Apr 2017 13:54:40 GMT
Server: Werkzeug/0.11.11 Python/2.7.13
根据烧瓶日志:
ImmutableMultiDict([('message_id', u'123'), ('performer_login', u'foo')])
127.0.0.1 - - [02/Apr/2017 22:54:40] "POST /api/rate?message_id=123&performer_login=foo HTTP/1.1" 200 -
我已经这样做了,但仍然没有改变。:(还有,我被payload=…
改为payload={'message\u id':data['message\u id'],'performer\u login':data['performer']}
,在handle\u rate
中,但仍然没有任何改变。谢谢你的帮助。我不能给你评分,因为我的声誉太低了。嗯……但这对我来说不起作用(api_rate_msg()中的代码)
不起作用。我想,我的请求代码有问题。像我一样,用httpie或curl测试你的api,这样你就可以知道哪里出了问题。嗯……你的服务器是在外面,而不是在你的本地网络中吗?哈哈,问题神奇地解决了!我无法运行http
,因为存在依赖性错误。我卸载了请求,然后重新设置它。N这是工作,谢谢
ImmutableMultiDict([('message_id', u'123'), ('performer_login', u'foo')])
127.0.0.1 - - [02/Apr/2017 22:54:40] "POST /api/rate?message_id=123&performer_login=foo HTTP/1.1" 200 -