繁体   English   中英

Python请求参数不通过

[英]Python requests parameters not going through

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

更直接地,我的问题是,是否有另一种方法可以包含我试图通过 url 传递的grant_typecode参数,例如通过 post 请求的标头传递它们? 我查看了requests的文档,但我没有运气。

@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')

您必须指定所需的标头AuthorizationContent-Type

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM