Как создавать собственные заголовки с модулем python запросов - PullRequest
1 голос
/ 02 августа 2020

Я пишу сценарий python для выполнения авторизации типа client_credentials OAuth, и выбранный токен-носитель необходимо передать в качестве параметра заголовка «Авторизация» в следующем запросе URL.

Я могу выполнить выборку токена-носителя в ответ я получаю строковый токен. теперь мне нужно передать эту строку в следующем заголовке запроса. Ниже приведен фрагмент кода

def getOAuthToken():
    ClientAuth = requests.auth.HTTPBasicAuth(ClientId, ClientSecret)
    PostData = {"grant_type": "client_credentials"}
    TokenResponse = requests.post(TokenUrl, auth=ClientAuth, data=PostData)

    if(TokenResponse.ok):
        print("Token Json response is success")
        print(TokenResponse.content)

    else:
        print("Error in json response")

    TokenJson = TokenResponse.json()
    AccessToken = "Bearer "+TokenJson["access_token"]
    print("AccessToken =",AccessToken)

def GetOAuthJsonResponse(Url, Headers):
    JsonResponse = requests.get(Url, headers=Headers)
    print(JsonResponse.status_code)

    if(JsonResponse.ok):
        print("Token Json response is success")

    else:
        print("Error in json response")

#AccessToken is the Bearer token received from authorization server
#Sample AccessToken will be like "Bearer 123475755959"
Headers = {'Authorization': AccessToken} 
GetOAuthJsonResponse(OAuthBaseUrl, Headers)

. Я получаю 401 как status_code. 401 означает несанкционированный доступ. похоже, что я что-то не так делаю с добавлением токена доступа в заголовки. Любой может мне в этом помочь.

1 Ответ

0 голосов
/ 02 августа 2020

Заголовок авторизации ожидает результата типа Bearer <accestoken>. Попробуйте эту строку:

Headers = {'Authorization': f"Bearer {AccessToken}"}

Это форматирует заголовок в правильном формате.

...