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

http://python-requests.org
https://github.com/requests/requests

Tags
Implementation
License
Platform

   




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:

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.

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 sttp.readthedocs.io.

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.

httpie - Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc


HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.Although Python 2.6 and 2.7 are supported as well, it is recommended to install HTTPie against the latest Python 3.x whenever possible. That will ensure that some of the newer HTTP features, such as SNI (Server Name Indication), work out of the box. Python 3 is the default for Homebrew installations starting with version 0.9.4. To see which version HTTPie uses, run http --debug.

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.

jwtproxy - An HTTP-Proxy that adds AuthN through JWTs


The JWT proxy is intended to be used as a complementary service for authenticating, and possibly authorizing requests made between services. There is a forward proxy component, which can be configured to sign outgoing requests to another service, and a reverse proxy component, which can be used to authenticate incoming requests from another service.The JWT forward proxy is used to sign outgoing requests with a JWT using a private key.

Kong - The Microservice API Gateway


Kong is a cloud-native, fast, scalable, and distributed Microservice Abstraction Layer (also known as an API Gateway, API Middleware or in some cases Service Mesh). Backed by the battle-tested NGINX with a focus on high performance, Kong was made available as an open-source platform in 2015. Under active development, Kong is used in production at thousands of organizations from startups, Global 5000 and Government organizations.

Zappa - Serverless Python Web Services


With a traditional HTTP server, the server is online 24/7, processing requests one by one as they come in. If the queue of incoming requests grows too large, some requests will time out. With Zappa, each request is given its own virtual HTTP "server" by Amazon API Gateway. AWS handles the horizontal scaling automatically, so no requests ever time out. Each request then calls your application from a memory cache in AWS Lambda and returns the response via Python's WSGI interface. After your app returns, the "server" dies.