#python #curl #python-requests
#python #curl #python-запросы
Вопрос:
Я изо всех сил пытаюсь преобразовать приведенную ниже команду в скрипт запросов python. Цель состоит в том, чтобы запросить у этого API историю их транспортных средств (Великобритания) на основе их регистрации, представленной ниже как ZZ99ABC
. У меня есть ключ API, и я подтвердил с помощью cURL, что мой доступ работает.
curl -H "Accept: application/json v6" -H "x-api-key: <my_api_key>" https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests?registration=ZZ99ABC
Пока моя попытка выдает ответ 403, отсутствует токен аутентификации.
import requests
import json
reg = "ZZ99ABC"
url = f"https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests"
payload = {'registration': reg}
headers = {'x-api-key': '<my_api_key>',
'Accept': 'application/json v6'}
r = requests.post(url, data=json.dumps(payload), headers=headers)
Есть идеи, где я мог ошибиться?
Заранее благодарю
requests.__version__ == '2.26.0'
python --version == 3.9.2
Комментарии:
1. Вам нужно использовать метод GET:
requests.get
Ответ №1:
Для любых начинающих запросов пользователей, таких как я. Следуя совету @Florian C. и используя PreparedRequest
класс, я решил мой запрос.
import requests
from requests.models import PreparedRequest
url = r"https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests"
params= {'registration': '<your_reg>'}
req = PreparedRequest()
req.prepare_url(url, params)
headers = {'x-api-key': '<your_api_key>',
'Accept': 'application/json v6'}
r = requests.get(req.url, headers=headers)
Ответ №2:
это должно работать:
import requests
headers = {
'Accept': 'application/json v6',
'x-api-key': '<my_api_key>',
}
params = (
('registration', 'ZZ99ABC'),
)
response = requests.get('/https://beta.check-mot.service.gov.uk/trade/vehicles/mot-tests/', headers=headers, params=params)