Как настроить 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())
Другие вопросы по тегам