Замена запросов на urllib - PullRequest
       61

Замена запросов на urllib

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

В настоящее время я использую следующую функцию для создания токена-носителя для дальнейших вызовов API:

import ujson
import requests

def getToken():
        #create token for Authorization'
        url = 'https://api.XXX.com/login/admin'
        payload = "{\n\t\"email\":\"test@user.com\",\n\t\"password\":\"password\"\n}"
        headers1 = {
        'Content-Type': 'application/json'
        }
        response = requests.request('POST', url, headers = headers1, data = payload)

        #create string to pass on to api request
        jsonToken = ujson.loads(response.text)
        token = jsonToken['token']
        return token 

Как я могу сделать то же самое с помощью urllib.request?

1 Ответ

1 голос
/ 03 августа 2020

Это то, что вы ищете?

from urllib.request import Request, urlopen
import ujson

def getToken():
    url = 'https://api.xxx.com/login/admin'
    payload = """{"email":"test@user.com","password":"password"}"""
    headers = {
        'Content-Type': 'application/json'
    }

    request = Request(method='POST',
                    data=payload.encode('utf-8'),
                    headers=headers,
                    url=url)
    with urlopen(request) as req:
        response = req.read().decode('utf-8')
        jsonToken = ujson.loads(response)
        token = jsonToken['token']
        return token
...