在 Python 中使用基本身份验证进行 HTTP POST 的最简洁方法是什么?

发布于 2024-11-14 09:47:24 字数 72 浏览 2 评论 0原文

在 Python 中使用基本身份验证进行 HTTP POST 的最简洁方法是什么?

仅使用 Python 核心库。

What is the cleanest way to do HTTP POST with Basic Auth in Python?

Using only the Python core libs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久夏青 2024-11-21 09:47:24

说真的,只需使用 requests

import requests
resp = requests.post(url, data={}, auth=('user', 'pass'))

:纯Python库,安装就像easy_install requestspip install requests一样简单。它具有极其简单且易于使用的 API,并且修复了 urllib2 中的错误,因此您无需这样做。不要因为愚蠢的自我强加的要求而让你的生活变得更加艰难。

Seriously, just use requests:

import requests
resp = requests.post(url, data={}, auth=('user', 'pass'))

It's a pure python library, installing is as easy as easy_install requests or pip install requests. It has an extremely simple and easy to use API, and it fixes bugs in urllib2 so you don't have to. Don't make your life harder because of silly self-imposed requirements.

千仐 2024-11-21 09:47:24

黑客的解决方法有效:

urllib.urlopen("https://username:password@hostname/path", data) 

很多人没有意识到在 URL 中指定用户名和密码的旧语法在 urllib.urlopen 中有效。用户名或密码似乎不需要任何编码,除非密码包含“@”符号。

Hackish workaround works:

urllib.urlopen("https://username:password@hostname/path", data) 

A lot of people don't realize that the old syntax for specifying username and password in the URL works in urllib.urlopen. It doesn't appear the username or password require any encoding, except perhaps if the password includes an "@" symbol.

等往事风中吹 2024-11-21 09:47:24

如果你定义了一个 url、用户名、密码和一些后数据,这应该可以在 Python2 中工作...

import urllib2

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
content = urllib2.urlopen(url, post_data)

官方 Python 文档中的示例显示了 urllib2 中的基本身份验证:
* http://docs.python.org/release/2.6/howto/urllib2。 使用 urllib2 进行基本身份验证的html

完整教程:
* http://www.voidspace.org.uk/python/articles/authentication。 shtml

if you define a url, username, password, and some post-data, this should work in Python2...

import urllib2

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
content = urllib2.urlopen(url, post_data)

example from official Python docs showing Basic Auth in urllib2:
* http://docs.python.org/release/2.6/howto/urllib2.html

full tutorial on Basic Authentication using urllib2:
* http://www.voidspace.org.uk/python/articles/authentication.shtml

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文