Requests 可以说是 Python 最好用的 http 模块,没有之一。
它对于身份验证有非常方便的使用规则。
基本身份验证
1 2 3
| >>> from requests.auth import HTTPBasicAuth >>> requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'pass')) <Response [200]>
|
因为这种验证非常常用,所以也提供了方便的写法。
1 2
| >>> requests.get('https://api.github.com/user', auth=('user', 'pass')) <Response [200]>
|
摘要式身份认证
1 2 3 4
| >>> from requests.auth import HTTPDigestAuth >>> url = 'http://httpbin.org/digest-auth/auth/user/pass' >>> requests.get(url, auth=HTTPDigestAuth('user', 'pass')) <Response [200]>
|
OAuth 1
1 2 3 4 5 6 7
| >>> import requests >>> from requests_oauthlib import OAuth1 >>> url = 'https://api.twitter.com/1.1/account/verify_credentials.json' >>> auth = OAuth1('YOUR_APP_KEY', 'YOUR_APP_SECRET', ... 'USER_OAUTH_TOKEN', 'USER_OAUTH_TOKEN_SECRET') >>> requests.get(url, auth=auth) <Response [200]>
|
更多复杂验证如 OAuth 2,请参看文档