Fish Shell:
Sending an HTTP request

How to:

Fish doesn’t have built-in commands for sending HTTP requests, but you can use curl right from the shell:

curl http://api.example.com/data

For a POST request with JSON data:

curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' http://api.example.com/data

To store the response:

set response (curl -X GET http://api.example.com/data)

And here’s what you might see after a GET request:

{
  "response": "Some data from the server"
}

Deep Dive

Historically, UNIX and Linux shells are handy for networking tasks. In the early days, tools like telnet were common for such purposes. Today, utility programs like curl and wget are the go-to. curl is a versatile tool that supports multiple protocols, and it’s often used because of its simplicity and flexibility.

Python or Node.js can be used when you need more complex request handling. But for quick tasks or simple scripts, curl in Fish is efficient and effective.

Implementing an HTTP request through Fish usually means relying on third-party tools. Fish itself is designed to be a smart and user-friendly command-line shell, not a do-all tool. When you combine it with the power of utilities like curl, you get the best of both worlds: Fish’s usability and curl’s capability.

See Also