top | item 16243700

Httpie: A cURL alternative

66 points| minaandrawos | 8 years ago |github.com | reply

18 comments

order
[+] jimmahoney|8 years ago|reply
It looks cool, but I don't really want to wait half a minute for it to do anything.

  $ time curl cs.marlboro.college
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a href="https://cs.marlboro.college  /">here</a>.</p>
  <hr>
  <address>Apache/2.4.18 (Ubuntu) Server at cs.marlboro.college Port 80</address>
  </body></html>

  real	0m0.269s
  user	0m0.004s
  sys	0m0.005s
  
  $ time http cs.marlboro.college
  HTTP/1.1 301 Moved Permanently
  Connection: Keep-Alive
  Content-Length: 321
  Content-Type: text/html; charset=iso-8859-1
  Date: Sat, 27 Jan 2018 18:04:17 GMT
  Keep-Alive: timeout=5, max=100
  Location: https://cs.marlboro.college/
  Server: Apache/2.4.18 (Ubuntu)
  
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
  <html><head>
  <title>301 Moved Permanently</title>
  </head><body>
  <h1>Moved Permanently</h1>
  <p>The document has moved <a href="https://cs.marlboro.college/">here</a>.</p>
  <hr>
  <address>Apache/2.4.18 (Ubuntu) Server at cs.marlboro.college Port 80</address>
  </body></html>

  real	0m30.553s
  user	0m0.437s
  sys	0m0.052s
[+] GhostVII|8 years ago|reply
On my computer httpie took 0.775s, and curl took 0.105s, so not much slower.
[+] GhostVII|8 years ago|reply
If you like httpie, http-prompt is a good add on for it, it lets you navigate through a rest API as if it is a filesystem (using cd for navigation), and lets you configure the arguments to pass to httpie for future requests.
[+] nlawalker|8 years ago|reply
I'm just starting to get into Python and using the command line more after a lifetime of mostly sticking to GUIs, and I'm really digging the "software for humans" vibe I'm finding in a few places. HTTPie is a good example, as is ncdu, which I just discovered this morning. Also anything by Kenneth Reitz.

The command line can be great for commanding, when it's done right, but it's not so great for most kinds of visualization, so CLI software that recognizes that and tries to compensate really helps.

[+] aorth|8 years ago|reply
I use httpie to view request and response headers. Very handy when you want to check something without worrying that a browser is caching something for some reason (like a redirect).

  $ http --print Hh http://news.ycombinator.com
[+] ajb257|8 years ago|reply
HTTPie is awesome, the only thing to watch out for is if you use it for large JSON responses, it can take a while to parse, process and display the response. In that case cURL is still handier, but HTTPie is the tool I generally reach for
[+] ippa|8 years ago|reply
Love Httpie! Such an awesome cli with easy to remember, natural syntax. When installing on new boxes I wish it wasn't depending on python though.
[+] parmesan|8 years ago|reply
Httpie is my version of Postman and similar services, curl for humans is spot on imho.
[+] CardenB|8 years ago|reply
HTTPie is great! I’ve replaced curl with it in my daily workflow
[+] pimlottc|8 years ago|reply
Could we all just agree to stop using the adjective “modern”? It’s such a weasal word. If there are advantages to your program, describe them. Simply being “newer” or in the currently trendy style does not make it automatically better.

I’m not saying that this is a bad project. But “modern” doesn’t tell me anything about why I might want to use it.

[+] ralfn|8 years ago|reply
Well, i use it daily, because it has:

- much more sane command line syntax

- automatic formatting and highlighting of json/xml/html

- automatically show received headers

- reverts to unproccessed output when redirected

PROTIP: use 'cat' to type the body manually:

     cat | http post https://someapi.com/somenendpoint Authorization:sometoken
You can then start typing the message body. When done, press ctrl+d (EOF) and the request will send and the reply will be printed.

And if you already have the body in a separate file, just pipe it through:

    cat mybody.json | http post https://someapi.com/somenendpoint Authorization:sometoken
[+] dang|8 years ago|reply
OK, we've s/modern//'d the title above.
[+] underyx|8 years ago|reply
Can you tell us what you think would be an appropriate 4-6 word tagline for HTTPie?