如何在Pycurl中设置HTTP_VERSION以与Mindtouch CURL接口一起使用

时间:2017-07-18 15:18:08

标签: python pycurl mindtouch

我正在尝试使用Python访问Mindtouch Wiki。我正在尝试使用pycurl执行此操作,因为稀疏的Mindtouch文档确实提供了CURL命令行示例。我通过反复试验发现,操作需要将-http1.0选项放在CURL命令行中,以便操作成功。但是我还没有找到如何在pycurl中设置此选项。

我得到的是:

c.setopt(c.HTTP_VERSION_1_0, True)
AttributeError: trying to obtain a non-existing attribute

在命令行上使用CURL时,我使用手工编码的XML文件,并使用-T选项引用它。但是,将XML作为字符串开始会更容易。在pycurl中进行此操作的任何其他见解都会很棒。

或者,如果有比pycurl更好的方法,我会很高兴听到它。

2 个答案:

答案 0 :(得分:1)

应该是:

c.setopt(pycurl.HTTP_VERSION, pycurl.CURL_HTTP_VERSION_1_0)

请参阅curl official documentation

答案 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())

这将获取MindTouch API calls文章的页面端点。

您还可以包含凭据,例如:

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())