Sodamhan.com

TL;DR

http

HTTPie: an HTTP client designed for testing, debugging, and generally interacting with APIs and HTTP servers. More information: https://httpie.io/docs/cli/usage.

  • Make a simple GET request (shows response headers and content):

http https://example.com

  • Print specific parts of the content (H: request headers, B: request body, h: response headers, b: response body, m: response metadata):

http --print H|B|h|b|m|Hh|Hhb|... https://example.com

  • Specify the HTTP method when sending a request and use a proxy to intercept the request:

http GET|POST|HEAD|PUT|PATCH|DELETE|... --proxy http|https:http://localhost:8080|socks5://localhost:9050|... https://example.com

  • Follow any 3xx redirects and specify additional headers in a request:

http -F|--follow https://example.com 'User-Agent: Mozilla/5.0' 'Accept-Encoding: gzip'

  • Authenticate to a server using different authentication methods:

http --auth username:password|token --auth-type basic|digest|bearer GET|POST|... https://example.com/auth

  • Construct a request but do not send it (similar to a dry-run):

http --offline GET|DELETE|... https://example.com

  • Use named sessions for persistent custom headers, auth credentials and cookies:

http --session session_name|path/to/session.json --auth username:password https://example.com/auth API-KEY:xxx

  • Upload a file to a form (the example below assumes that the form field is <input type="file" name="cv" />):

http --form POST https://example.com/upload cv@path/to/file

This document was created using the contents of the tldr project.