summaryrefslogtreecommitdiffhomepage
path: root/httpie.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'httpie.html.markdown')
-rw-r--r--httpie.html.markdown120
1 files changed, 120 insertions, 0 deletions
diff --git a/httpie.html.markdown b/httpie.html.markdown
new file mode 100644
index 00000000..390e7b35
--- /dev/null
+++ b/httpie.html.markdown
@@ -0,0 +1,120 @@
+---
+category: tool
+tool: httpie
+contributors:
+ - ["AdaĆ­as Magdiel", "https://github.com/AdaiasMagdiel"]
+filename: learn-httpie.sh
+---
+
+HTTPie is a powerful command-line HTTP client designed for easy interaction
+with HTTP servers. It provides a simple and intuitive interface, making it an
+excellent tool for developers, testers, and system administrators.
+
+## Basic Usage
+
+HTTPie follows a simple syntax: http [flags] [METHOD] URL [items].
+
+```bash
+http GET https://api.example.com/posts
+```
+
+You can print the request without sending it by using the `--offline` flag.
+
+```bash
+http --offline https://api.example.com/posts
+```
+
+### URL shortcuts for `localhost`
+
+HTTPie supports a curl-like shorthand for localhost. For instance, ":3000"
+expands to "http://localhost:3000". If the port is omitted, it assumes port 80.
+
+```bash
+http :/users # http://localhost/users
+http :5000/rss # http://localhost:5000/rss
+```
+
+### Optional GET and POST
+
+If you don't specify the METHOD, the HTTPie will use:
+
+- GET for requests without body
+- POST for requests with body
+
+```bash
+http https://api.example.com/tags # GET tags
+http https://api.example.com/tags title="Tutorial" slug="tutorial" # POST a new tag
+```
+
+## Querystring Parameters
+
+
+If you're manually adding query string parameters in the terminal, try the
+`param==value` syntax. It avoids shell escaping for & separators and
+automatically URL-escapes special characters in parameter names and values.
+This differs from parameters in the full URL, which HTTPie doesn't modify.
+
+```bash
+http https://api.example.com/search q==httpie per_page==20
+```
+
+## Sending Data
+
+You can send data in various formats such as JSON, form data, or files.
+
+### JSON Data
+
+```bash
+http POST https://api.example.com/posts title="Hello" body="World"
+```
+
+### Form Data
+
+```bash
+http -f POST https://api.example.com/submit name=John email=john@example.com
+```
+
+### Files
+
+```bash
+http --form POST https://api.example.com/upload file@/path/to/file.txt
+```
+
+## Headers and Authentication
+
+HTTPie allows you to set headers and handle authentication easily.
+
+### Headers
+
+```bash
+http GET https://api.example.com/posts Authorization:"Bearer Token" User-Agent:"HTTPie"
+```
+
+### Basic Authentication
+
+```bash
+http -a username:password GET https://api.example.com/protected
+```
+
+### Bearer Authentication
+
+```bash
+https -A bearer -a token https://api.example.com/admin
+```
+
+## Response Handling
+
+HTTPie provides various options for handling responses.
+
+```bash
+http GET https://api.example.com/data Accept:application/json # Pretty Print JSON
+
+http GET https://api.example.com/image --output image.png # Save Response to File
+
+http --follow GET https://example.com # Follow Redirects
+```
+
+## Further Reading
+
+- [Official Documentation](https://httpie.io/docs/cli).
+- [Github](https://github.com/httpie).