Python请求的参数没有通过

Python请求的参数没有通过,python,flask,python-requests,Python,Flask,Python Requests,我正试图根据这些指令的OAuth流向Quizlet发出post请求https://quizlet.com/api/2.0/docs/authorization-code-flow。我遇到了一个问题,在第2步中,我必须使用从他们的服务器生成的令牌发出post请求,但是我没有成功地将令牌传递到url。我知道它是正确生成的,但是我在传递它时遇到了问题,并且没有得到400响应 更直接地说,我的问题是,是否有另一种方法包括我试图通过post请求中的url传入的grant_type和code参数,比如通过p

我正试图根据这些指令的OAuth流向Quizlet发出post请求
https://quizlet.com/api/2.0/docs/authorization-code-flow
。我遇到了一个问题,在第2步中,我必须使用从他们的服务器生成的令牌发出post请求,但是我没有成功地将令牌传递到url。我知道它是正确生成的,但是我在传递它时遇到了问题,并且没有得到
400
响应

更直接地说,我的问题是,是否有另一种方法包括我试图通过post请求中的url传入的
grant_type
code
参数,比如通过post请求的标头传入这些参数?我已经查看了
请求的文档
,但运气不好

@app.route('/')
@app.route('/index')
def index():
    code = request.args.get('code')
    state = request.args.get('state')
    print("code is " + code)
    r = requests.post("https://api.quizlet.com/oauth/token?grant_type=authorization_code&code=" + code)

    return render_template('index.html')

您必须指定所需的标题
授权
内容类型

import requests
from requests.auth import _basic_auth_str

client_id = 'YOUR CLIENT ID'
secret = 'YOUR CLIENT SECRET'
code = 'CODE FROM STEP 1'

headers = {
    'Authorization': _basic_auth_str(client_id, secret),
    'Content-Type': 'application/x-www-form-urlencoded'
}
r = requests.post('https://api.quizlet.com/oauth/token?grant_type=authorization_code&code={0}'.format(
    code), headers=headers)

print r.status_code
print r.content

好的,我修复了代码中的一个小问题。我还移动了顶部需要更新的3个变量。运行之后,我得到了200和一个访问令牌。让我知道它是否适合你。