【问题标题】:How to set user name and password in a HTTP get request?如何在 HTTP 获取请求中设置用户名和密码?
【发布时间】:2015-02-15 19:54:56
【问题描述】:

我已经使用 Python 中的 requests 库来发送获取请求:

response = requests.get(url, verify, auth, params, headers)

我的假设是可以直接从浏览器发送任何获取请求。例如,在浏览器的地址行中,我需要这样写:

http://my_url.net?param1=12&param2=777

通过上述方式,我可以设置我在 Python 函数中使用的 url 和 params。但是如果我使用浏览器发送请求,如何在获取请求中设置auth(用户名和密码)。同样的问题适用于其余两个参数:verify 和 headers。

【问题讨论】:

  • 您可以尝试http://{username}:{password}@my_url.net?param1=12&param2=777的格式,但是您不能只使用浏览器地址栏添加标题

标签: python http authentication get-request


【解决方案1】:

根据您的浏览器,我想您可以找到可以帮助您做到这一点的扩展程序。

如果你使用 cUrl,你可以这样做:

curl http://my_url.net?param1=12&param2=777 --header "Authorization: Basic XXX"

其中“xxx”是字符串“username:password”的 Base64 编码。

【讨论】:

【解决方案2】:

或者试试这个,使用password manager with a default realm:

url = "http://my_url.net?param1=12&param2=777"

pw_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
pw_mgr.add_password(None, url, username, password)

urllib2.install_opener(
    urllib2.build_opener(urllib2.HTTPBasicAuthHandler(pw_mgr)))

request = urllib2.Request(url)
response = urllib2.urlopen(request)

【讨论】:

  • 我想提供一个用户可以在浏览器中使用的链接。
  • 啊哈,对不起,我误解了你的问题。 @PeeHaa 的评论是我所知道的唯一方式。
猜你喜欢
  • 1970-01-01
  • 2019-08-14
  • 2021-01-04
  • 2016-08-16
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多