@AlmazKayum

PUT запрос работает в Curl, почему не работает в Python3?

Пробую метод PUT в curl и в python, но результат различный.
Нам нужно включить галку enabled на сервере.
так работает, код 200, enabled=True
curl --user user:pass 
-X PUT "https://api.url/27" 
-H "Accept: application/json" -H "Content-Type: application/json" -H "Token: token" 
-d "{ \"enabled\": true}"

так работает, код 200, но галочку на enabled=True не меняет.
headers = {
    'Accept': 'application/json',
    'Content-type': 'application/json',
    'Token': 'token'
}
auth = ('user', 'pass')

def enabled_settings(order_id):
    enabled = True
    data = {"enabled": enabled}
    res = requests.put(f'api.url/{order_id}', 
        data=data,
        headers=headers,
        auth=auth)
    return res.json()

не пойму, что делаю не так?
  • Вопрос задан
  • 98 просмотров
Пригласить эксперта
Ответы на вопрос 3
hottabxp
@hottabxp Куратор тега Python
Сначала мы жили бедно, а потом нас обокрали..
Прогоните ваш Curl через сервис curl.trillworks.com
Ответ написан
tema_sun
@tema_sun
Попробуйте так:
...
res = requests.put(f'{api.url/{order_id}', 
        json=data,
        headers=headers,
        auth=auth)
...
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
Строка правильно написана в исходном коде?
f'{api.url/{order_id}'

А если так?
requests.put(f'{api.url/{order_id}', 
        json=data,
        headers=headers,
        auth=auth)


Либо тогда уж
payload="{\"enabled\": true}"
requests.put(f'{api.url/{order_id}', 
        data=payload,
        headers=headers,
        auth=auth)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы