- Saved searches
- Use saved searches to filter your results more quickly
- License
- psf/requests
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- Requests: HTTP for Humans™¶
- Beloved Features¶
- The User Guide¶
- The Community Guide¶
- The API Documentation / Guide¶
- The Contributor Guide¶
- Useful Links
- Requests
- Installing Requests and Supported Versions
- Supported Features & Best–Practices
- API Reference and User Guide available on Read the Docs
- Cloning the repository
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
A simple, yet elegant, HTTP library.
License
psf/requests
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
- While Requests doesn't automatically retry failures, this ability is a very common advanced use case in real world applications. - Although there's a mention of this ability on the HTTPAdapter class docs, it's a bit buried and not very specific. - It makes sense then to have an Example in the HTTPAdapter section of the Advanced Usage docs with a basic template for how this can be accomplished with Requests.
Git stats
Files
Failed to load latest commit information.
README.md
Requests is a simple, yet elegant, HTTP library.
>>> import requests >>> r = requests.get('https://httpbin.org/basic-auth/user/pass', auth=('user', 'pass')) >>> r.status_code 200 >>> r.headers['content-type'] 'application/json; charset=utf8' >>> r.encoding 'utf-8' >>> r.text ' >>> r.json() 'authenticated': True, . >
Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your PUT & POST data — but nowadays, just use the json method!
Requests is one of the most downloaded Python packages today, pulling in around 30M downloads / week — according to GitHub, Requests is currently depended upon by 1,000,000+ repositories. You may certainly put your trust in this code.
Installing Requests and Supported Versions
Requests is available on PyPI:
$ python -m pip install requests
Requests officially supports Python 3.7+.
Supported Features & Best–Practices
Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.
- Keep-Alive & Connection Pooling
- International Domains and URLs
- Sessions with Cookie Persistence
- Browser-style TLS/SSL Verification
- Basic & Digest Authentication
- Familiar dict –like Cookies
- Automatic Content Decompression and Decoding
- Multi-part File Uploads
- SOCKS Proxy Support
- Connection Timeouts
- Streaming Downloads
- Automatic honoring of .netrc
- Chunked HTTP Requests
API Reference and User Guide available on Read the Docs
When cloning the Requests repository, you may need to add the -c fetch.fsck.badTimezone=ignore flag to avoid an error about a bad commit (see this issue for more background):
git clone -c fetch.fsck.badTimezone=ignore https://github.com/psf/requests.git
You can also apply this setting to your global Git config:
git config --global fetch.fsck.badTimezone ignore
Requests: HTTP for Humans™¶
Requests is an elegant and simple HTTP library for Python, built for human beings.
Behold, the power of Requests:
>>> r = requests.get(‘https://api.github.com/user’, auth=(‘user’, ‘pass’)) >>> r.status_code 200 >>> r.headers[‘content-type’] ‘application/json; charset=utf8’ >>> r.encoding ‘utf-8’ >>> r.text ‘ >>> r.json()
Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your POST data. Keep-alive and HTTP connection pooling are 100% automatic, thanks to urllib3.
Beloved Features¶
Requests is ready for today’s web.
- Keep-Alive & Connection Pooling
- International Domains and URLs
- Sessions with Cookie Persistence
- Browser-style SSL Verification
- Automatic Content Decoding
- Basic/Digest Authentication
- Elegant Key/Value Cookies
- Automatic Decompression
- Unicode Response Bodies
- HTTP(S) Proxy Support
- Multipart File Uploads
- Streaming Downloads
- Connection Timeouts
- Chunked Requests
- .netrc Support
Requests officially supports Python 3.7+, and runs great on PyPy.
The User Guide¶
This part of the documentation, which is mostly prose, begins with some background information about Requests, then focuses on step-by-step instructions for getting the most out of Requests.
- Installation of Requests
- $ python -m pip install requests
- Get the Source Code
- Make a Request
- Passing Parameters In URLs
- Response Content
- Binary Response Content
- JSON Response Content
- Raw Response Content
- Custom Headers
- More complicated POST requests
- POST a Multipart-Encoded File
- Response Status Codes
- Response Headers
- Cookies
- Redirection and History
- Timeouts
- Errors and Exceptions
- Session Objects
- Request and Response Objects
- Prepared Requests
- SSL Cert Verification
- Client Side Certificates
- CA Certificates
- Body Content Workflow
- Keep-Alive
- Streaming Uploads
- Chunk-Encoded Requests
- POST Multiple Multipart-Encoded Files
- Event Hooks
- Custom Authentication
- Streaming Requests
- Proxies
- Compliance
- HTTP Verbs
- Custom Verbs
- Link Headers
- Transport Adapters
- Blocking Or Non-Blocking?
- Header Ordering
- Timeouts
- Basic Authentication
- Digest Authentication
- OAuth 1 Authentication
- OAuth 2 and OpenID Connect Authentication
- Other Authentication
- New Forms of Authentication
The Community Guide¶
This part of the documentation, which is mostly prose, details the Requests ecosystem and community.
- Recommended Packages and Extensions
- Certifi CA Bundle
- CacheControl
- Requests-Toolbelt
- Requests-Threads
- Requests-OAuthlib
- Betamax
- Encoded Data?
- Custom User-Agents?
- Why not Httplib2?
- Python 3 Support?
- Python 2 Support?
- What are “hostname doesn’t match” errors?
- Python for iOS
- Stack Overflow
- File an Issue
- Send a Tweet
- Process
- Previous CVEs
- Major Releases
- Minor Releases
- Hotfix Releases
- Reasoning
The API Documentation / Guide¶
If you are looking for information on a specific function, class, or method, this part of the documentation is for you.
- Developer Interface
- Main Interface
- Exceptions
- Request Sessions
- Lower-Level Classes
- Lower-Lower-Level Classes
- Authentication
- Encodings
- Cookies
- Status Code Lookup
- Migrating to 1.x
- Migrating to 2.x
The Contributor Guide¶
If you want to contribute to the project, this part of the documentation is for you.
- Contributor’s Guide
- Be Cordial
- Get Early Feedback
- Contribution Suitability
- Code Contributions
- Steps for Submitting Code
- Code Review
- Code Style
- New Contributors
- Keepers of the Crystals
- Previous Keepers of Crystals
- Patches and Suggestions
There are no more guides. You are now guideless. Good luck.
Requests is an elegant and simple HTTP library for Python, built for human beings.
Useful Links
Requests
Requests is a simple, yet elegant, HTTP library.
Requests allows you to send HTTP/1.1 requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your PUT & POST data — but nowadays, just use the json method!
Requests is one of the most downloaded Python packages today, pulling in around 30M downloads / week — according to GitHub, Requests is currently depended upon by 1,000,000+ repositories. You may certainly put your trust in this code.
Installing Requests and Supported Versions
Requests is available on PyPI:
python -m pip install requests
Requests officially supports Python 3.7+.
Supported Features & Best–Practices
Requests is ready for the demands of building robust and reliable HTTP–speaking applications, for the needs of today.
- Keep-Alive & Connection Pooling
- International Domains and URLs
- Sessions with Cookie Persistence
- Browser-style TLS/SSL Verification
- Basic & Digest Authentication
- Familiar dict –like Cookies
- Automatic Content Decompression and Decoding
- Multi-part File Uploads
- SOCKS Proxy Support
- Connection Timeouts
- Streaming Downloads
- Automatic honoring of .netrc
- Chunked HTTP Requests
API Reference and User Guide available on Read the Docs
Cloning the repository
When cloning the Requests repository, you may need to add the -c fetch.fsck.badTimezone=ignore flag to avoid an error about a bad commit (see this issue for more background):
git clone -c fetch.fsck.badTimezone https://github.com/psf/requests.git
You can also apply this setting to your global Git config:
git config --global fetch.fsck.badTimezone ignore