Requests - Python HTTP Requests for Humans

  •        48

Requests allows you to send organic, grass-fed HTTP/1.1 requests, without the need for manual labor. 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. Requests is one of the most downloaded Python packages of all time, pulling in over 11,000,000 downloads every month.

  • International Domains and URLs
  • Keep-Alive & Connection Pooling
  • Sessions with Cookie Persistence
  • Browser-style SSL Verification
  • Basic/Digest Authentication
  • Elegant Key/Value Cookies
  • Automatic Decompression
  • Automatic Content Decoding
  • Unicode Response Bodies
  • Multipart File Uploads
  • HTTP(S) Proxy Support
  • Connection Timeouts
  • Streaming Downloads
  • .netrc Support
  • Chunked Requests



Related Projects

Requests - Requests for PHP is a humble HTTP request library

Requests is a HTTP library written in PHP, for human beings. It is roughly based on the API from the excellent Requests Python library. Requests is ISC Licensed (similar to the new BSD license) and has no dependencies, except for PHP 5.2+. Despite PHP's use as a language for the web, its tools for sending HTTP requests are severely lacking. cURL has an interesting API, to say the least, and you can't always rely on it being available. Sockets provide only low level access, and require you to build most of the HTTP response parsing yourself.

elastic4s - Elasticsearch Scala Client - Non Blocking, Type Safe, HTTP, TCP

Elastic4s is a concise, idiomatic, reactive, type safe Scala client for Elasticsearch. The client can be used over both HTTP and TCP by choosing either of the elastic4s-http or elastic4s-tcp submodules. The official Elasticsearch Java client can of course be used in Scala, but due to Java's syntax it is more verbose and it naturally doesn't support classes in the core Scala core library nor Scala idioms.Elastic4s's DSL allows you to construct your requests programatically, with syntactic and semantic errors manifested at compile time, and uses standard Scala futures to enable you to easily integrate into an asynchronous workflow. The aim of the DSL is that requests are written in a builder-like way, while staying broadly similar to the Java API or Rest API. Each request is an immutable object, so you can create requests and safely reuse them, or further copy them for derived requests. Because each request is strongly typed your IDE or editor can use the type information to show you what operations are available for any request type.

sling - A Go HTTP client library for creating and sending API requests

Sling is a Go HTTP client library for creating and sending API requests.Slings store HTTP Request properties to simplify sending requests and decoding responses. Check usage or the examples to learn how to compose a Sling into your API client.

restclient-cpp - C++ client for making HTTP/REST requests

This is a simple REST client for C++. It wraps libcurl for HTTP requests. restclient-cpp provides two ways of interacting with REST endpoints. There is a simple one, which doesn't need you to configure an object to interact with an API. However the simple way doesn't provide a lot of configuration options either. So if you need more than just a simple HTTP call, you will probably want to check out the advanced usage.

oauthlib - A generic, spec-compliant, thorough implementation of the OAuth request-signing logic

OAuthLib is a generic utility which implements the logic of OAuth without assuming a specific HTTP request object or web framework. Use it to graft OAuth client support onto your favorite HTTP library, or provide support onto your favourite web framework. If you're a maintainer of such a library, write a thin veneer on top of OAuthLib and get OAuth support for very little effort.Then you might be more interested in using requests which has OAuthLib powered OAuth support provided by the requests-oauthlib library.

toolbelt - A toolbelt of useful classes and functions to be used with python-requests

This is just a collection of utilities for python-requests, but don't really belong in requests proper. The minimum tested requests version is 2.1.0. In reality, the toolbelt should work with 2.0.1 as well, but some idiosyncracies prevent effective or sane testing on that version.On Python 3.3.0 and 3.3.1, the standard library's http module will fail when passing an instance of the MultipartEncoder. This is fixed in later minor releases of Python 3.3. Please consider upgrading to a later minor version or Python 3.4. There is absolutely nothing this library can do to work around that bug.

OkHttp - An HTTP & HTTP/2 client for Android and Java applications

OkHttp is an HTTP & HTTP/2 client for Android and Java applications. It provides HTTP/2 support allows all requests to the same host to share a socket, Connection pooling, Response caching and lot more.

browserver-client - เทด A node.js HTTP server in your browser เทด

This is a browserver client, for the browser. browserver-client exposes the important bits of the node.js http API in the browser, allowing it to receive incoming HTTP requests and make outgoing HTTP requests via WebSockets.

urllib3 - Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more

urllib3 is a powerful, sanity-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries:

instagram - An easy-to-use and simple Instagram package

An easy-to-use and simple Instagram package. Instagram is decoupled from any library sending HTTP requests (like Guzzle), instead it uses an abstraction called HTTPlug which provides the http layer used to send requests to exchange rate services. This gives you the flexibility to choose what HTTP client and PSR-7 implementation you want to use.

Postman - A chrome addon, helps to test web services

Postman is a powerful HTTP client to help test web services easily and efficiently. Postman let's you craft simple as well as complex HTTP requests quickly. It also saves requests for future use so that you never have to repeat your keystrokes ever again.

Nocilla - Testing HTTP requests has never been easier

Stunning HTTP stubbing for iOS and OS X. Testing HTTP requests has never been easier. This library was inspired by WebMock and it's using this approach to stub the requests.

Heimdall - An enhanced HTTP client for Go

Heimdall is an HTTP client that helps your application make a large number of requests, at scale. With Heimdall, you can use a hystrix-like circuit breaker to control failing requests, Add synchronous in-memory retries to each request, with the option of setting your own retrier strategy, Create clients with different timeouts for every request.

sttp - The Scala HTTP client you always wanted!

sttp is an open-source library which provides a clean, programmer-friendly API to define HTTP requests and execute them using one of the wrapped backends, such as akka-http, async-http-client or OkHttp. sttp documentation is available at

HTTPolice - Lint for HTTP requests and responses

HTTPolice is a lint for HTTP requests and responses. It checks them for conformance to standards and best practices. As a command-line tool, it can read HAR files or raw HTTP/1.x TCP streams. HTTPolice just analyzes anything you feed into it. Thus, it can be used on requests and responses captured from a real process or test suite.

requests-futures - Asynchronous Python HTTP Requests for Humans using Futures

Small add-on for the python requests http library. Makes use of python 3.2's concurrent.futures or the backport for prior versions of python. The additional API and changes are minimal and strives to avoid surprises.

Mockingjay - An elegant library for stubbing HTTP requests with ease in Swift

An elegant library for stubbing HTTP requests in Swift, allowing you to stub any HTTP/HTTPS using NSURLConnection or NSURLSession. That includes any request made from libraries such as Alamofire and AFNetworking. CocoaPods is the recommended installation method.

async-http-client - Asynchronous Http and WebSocket Client library for Java

The Async Http Client (AHC) library's purpose is to allow Java applications to easily execute HTTP requests and asynchronously process the response.

amygdala - RESTful HTTP client for JavaScript powered web applications

Amygdala is a RESTful HTTP library for JavaScript powered web applications. Simply configure it once with your API schema, and easily do GET, POST, PUT and DELETE requests with minimal effort and a consistent API. npm install amygdala.