首页 > 解决方案 > 通过 POST 在正文中发送数据 - Flask

问题描述

我需要使用 Flask 向 Instagram Basic API 发送 POST 请求。

这是我的代码:

def get_token_insta(code):
    dict_to_send = {"client_id": "XXX",
                    "client_secret": "XXX",
                    "grant_type": "authorization_code",
                    "redirect_uri": "XXX",
                    "code": "XXX"}
    json_string = json.dumps(dict_to_send)
    res = requests.post('https://api.instagram.com/oauth/access_token', data=json_string)
    data = res.json()
    print(data)
    # More code...

代码运行良好,但 Instagram 的响应是

{“error_type”:“OAuthException”,“code”:400,“error_message”:“缺少必填字段client_id”}

阅读官方文档和这个@murp答案,我需要将数据放入 POST 请求的正文中。

我错了吗?我怎样才能使它工作?

标签: pythonpython-requestsinstagram-api

解决方案


您在哪里发现需要将 POST请求参数序列化到json?当然,您会得到 JSON 响应,但您不需要序列化请求参数。尝试将dict_to_send自身作为data参数传递:

requests.post(url, ..., data=dict_to_send)

请求文档中的更多信息


推荐阅读