【问题标题】:Why I am receiving 405 error for request?为什么我收到请求的 405 错误?
【发布时间】:2020-05-29 10:00:10
【问题描述】:

我正在尝试使用 python3.6 向 oauth2 服务器发送一个发布请求以获取我的访问令牌,它显示响应 405。有人可以告诉我我在这里做错了什么

import requests
client_id = 'client_id'
client_secret = 'my client secret'
r = request.post('serverurl/oauth2/token&Content-Type="application/x-www-form-urlencoded"',data = {'grant_type':'authorization_code',
'code':'91a8a5e4-c5b3-4e2a-91ca-d59fe139526c',
'client_id':client_id,
'client_secret':client_secret,
'redirect_uri':'actualredirecturl'
}

【问题讨论】:

  • HTTP 405 表示请求已被识别但由于某种原因无效。您确定 POST 是针对您正在执行的操作所使用的 API 的正确方法吗?
  • 感谢 luker 的帮助

标签: python post oauth-2.0 request


【解决方案1】:

我用下面的代码解决了

这里是代码

import requests,base64
client_id = "myclientid"
client_secret = "myclientsecret"
redirect_uri = 'my redirect url'
code = 'code return by server on login'
requestHeaders = {
    'Authorization': 'Basic ' + base64.b64encode(client_id + ':' + client_secret),
    'Content-Type': 'application/x-www-form-urlencoded'
}
requestBody = {
    'grant_type': 'authorization_code',
    'code': code,
    'redirect_uri': redirect_uri
}
response = requests.post('token_url', data=requestBody, headers=requestHeaders)
token = response.json()['access_token']

希望有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-05
    • 2012-10-04
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    相关资源
    最近更新 更多