带令牌的Python HTTP请求

7 投票
4 回答
2778 浏览
提问于 2025-04-16 01:58

怎样用哪个Python库来发送一个带有用户名和密码或者令牌的HTTPS请求呢?

这基本上相当于在命令行中输入 curl -u user:pwd https://www.mysite.com/ 的效果。

谢谢!

4 个回答

1

如果你需要安全地进行多线程请求,可以使用 pycurl (这是 Python 对 curl 的接口):

import pycurl
from StringIO import StringIO

response_buffer = StringIO()
curl = pycurl.Curl()

curl.setopt(curl.URL, "https://www.yoursite.com/")

# Setup the base HTTP Authentication.
curl.setopt(curl.USERPWD, '%s:%s' % ('youruser', 'yourpassword'))

curl.setopt(curl.WRITEFUNCTION, response_buffer.write)

curl.perform()
curl.close()

response_value = response_buffer.getvalue()

否则,可以使用 urllib2 (想了解更多信息可以看看其他回答),因为它是内置的,使用起来更简单明了。

4

使用 Python 的 requests 库:让网络请求变得简单

import requests

requests.get("https://www.mysite.com/", auth=('username','pwd'))

你还可以使用摘要认证...

0

class urllib2.HTTPSHandler 这是一个用来处理打开HTTPS网址的类。

21.6.7. HTTPPasswordMgr对象 这些方法可以在HTTPPasswordMgr和HTTPPasswordMgrWithDefaultRealm对象上使用。

HTTPPasswordMgr.add_password(realm, uri, user, passwd) 这里的uri可以是一个单独的网址,也可以是一系列的网址。realm、user和passwd必须是字符串。这段代码的作用是,当需要验证某个realm和给定网址的超级网址时,会使用(user, passwd)作为认证信息。 HTTPPasswordMgr.find_user_password(realm, authuri) 这个方法用来获取给定realm和网址的用户名和密码,如果有的话。如果没有找到匹配的用户名和密码,这个方法会返回(None, None)。

对于HTTPPasswordMgrWithDefaultRealm对象,如果给定的realm没有匹配的用户名和密码,它会去查找realm为None的情况。

撰写回答