寻找与Flask的request.get_data()等效的Django(用于使用原始请求主体进行Slack请求验证)

时间:2018-11-29 09:36:21

标签: python django flask slack-api

对于Django / DRF,我需要与Flask的request.get_data()等效。它几乎可以与str.encode(json.dumps(request.data))一起使用,但是输出键对之间包含空格:值和现有链接的符号都不会转义。

烧瓶输出(对我有用):

b'{"token":"xxxx","team_id":"TDB6U9XM1","api_app_id":"yyyyyy","event":{"type":"link_shared","user":"UDC5TRW0M","channel":"CE9GC5C4R","message_ts":"1543451681.002600","links":[{"url":"http:\\/\\/testing.serv-dev.pl\\/viewer\\/3\\/24","domain":"serv-dev.pl"}]},"type":"event_callback","event_id":"EvEE40NTSM","event_time":1543451682,"authed_users":["UDC5TRW0M"]}'

当前Django输出:

b{"token": "xxxx", "team_id": "TDB6U9XM1", "api_app_id": "yyyyyy", "event": {"type": "link_shared", "user": "UDC5TRW0M", "channel": "CE9GC5C4R", "message_ts": "1543452606.003600", "links": [{"url": "http://testing.serv-dev.pl/viewer/3/24", "domain": "serv-dev.pl"}]}, "type": "event_callback", "event_id": "EvEENV65TU", "event_time": 1543452607, "authed_users": ["UDC5TRW0M"]}'

这是专门针对slack request signature verification的,它专门要求传递raw request body

访问request.body可能由于POST方法而引发错误django.http.request.RawPostDataException: You cannot access body after reading from request's data stream

0 个答案:

没有答案