Python эквивалент для curl TRACE - PullRequest
2 голосов
/ 20 февраля 2020

Существует ли python эквивалент для проверки, принимает ли хост метод трассировки?

curl -sIX TRACE neopets.com

Примечание. Я не пытаюсь получить трассировку запроса, я ' Я также не пытаюсь получить мой необработанный запрос. Я пытаюсь проверить, поддерживает ли веб-сервер метод TRACE.

https://curl.trillworks.com/ переводит команду в:

requests.head('http://neopets.com'), но, похоже, она не дает того же результата, что и curl.

РЕДАКТИРОВАТЬ: я думаю, я должен построить запрос

req = requests.Request('TRACE', 'https://google.com')
r = req.prepare()
s = requests.Session()
s.send(r)

1 Ответ

1 голос
/ 21 февраля 2020

Поскольку вы просто хотите проверить, принят ли метод TRACE, вы можете использовать метод OPTIONS. Доступные методы будут возвращены в заголовке Allow.

import requests

response = requests.options('http://google.com/')
print(response.headers['Allow'])

>> GET, HEAD

...