通过 POST - Flask 在正文中发送数据

Send data in body via 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": "Missing required field client_id" }

正在读取 official documentation and this @murp answer 我需要将数据放入 POST 请求的正文中。

我错了吗?我怎样才能做到这一点?

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

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

更多信息在requests documentation