Как настроить HTTP_VERSION в Pycurl для использования с интерфейсом Mindtouch CURL
Я пытаюсь получить доступ к Mindtouch Wiki с помощью Python. Я пытаюсь использовать pycurl, чтобы сделать это, поскольку разреженная документация Mindtouch дает примеры командной строки CURL. Методом проб и ошибок я обнаружил, что для выполнения операции необходимо, чтобы в командной строке CURL была указана опция --http1.0. Однако я не выяснил, как установить эту опцию в pycurl.
Что я получаю это:
c.setopt(c.HTTP_VERSION_1_0, True)
AttributeError: trying to obtain a non-existing attribute
При использовании CURL в командной строке я использую кодированный вручную XML-файл и обращаюсь к нему с помощью опции -T. Однако было бы проще начать с XML в виде строки. Любое дополнительное понимание в Pycurl было бы здорово.
В качестве альтернативы, если есть лучший способ сделать это, чем Pycurl, я был бы рад услышать об этом.
2 ответа
Так должно быть:
c.setopt(pycurl.HTTP_VERSION, pycurl.CURL_HTTP_VERSION_1_0)
Смотри официальную документацию.
В качестве альтернативы Pycurl, вы можете попробовать requests
HTTP библиотека.
Вот рабочий пример, который получает вывод JSON определенной страницы.
import requests
api_url = "https://success.mindtouch.com/@api/deki/pages/1835/?dream.out.format=json"
response = requests.get(api_url)
print(response.json())
Это получает конечную точку страницы для статьи о вызовах API MindTouch.
Вы также можете включить учетные данные, например:
import requests
api_url = "https://success.mindtouch.com/@api/deki/pages/1835/?dream.out.format=json"
creds = ("username", "password")
response = requests.get(api_url, auth=creds)
print(response.json())