Home / Sistemi operativi & mobile / Linux / HTTPie: un'ottima alternativa a cURL
Mattepuffo

HTTPie: un'ottima alternativa a cURL

HTTPie: un'ottima alternativa a cURL

Attraverso la mia rivista preferita (Linux Pro) sono venuto a conoscenza di quest'ottimo programma: HTTPie.

Sostanzialmente possiamo definirlo come una alternativa più easy a cURL.

Dovrebbe essere disponibile tranquillamente nei repo; su Archlinux:

# pacman -Sy httpie

Una volta installato, per vedere le varie opzioni disponibili, basterà dare il comando senza opzioni:

$ http
usage: http [--json] [--form] [--pretty {all,colors,format,none}]
            [--style STYLE] [--print WHAT] [--verbose] [--headers] [--body]
            [--stream] [--output FILE] [--download] [--continue]
            [--session SESSION_NAME_OR_PATH | --session-read-only SESSION_NAME_OR_PATH]
            [--auth USER[:PASS]] [--auth-type {basic,digest}]
            [--proxy PROTOCOL:PROXY_URL] [--follow] [--verify VERIFY]
            [--timeout SECONDS] [--check-status] [--ignore-stdin] [--help]
            [--version] [--traceback] [--debug]
            [METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]]
http: error: the following arguments are required: URL, REQUEST_ITEM

Sennò potete sempre usare l'help:

$ http --help

A questo punto vediamo qualche esempio.

Un primo banale:

$ http http://www.mattepuffo.com/blog/

Se, invece, vogliamo ad esempio testare un web service che resituisce i risultato in formato JSON:

$ http --json http://www.sito.com/file.php

L'output sarà strutturato in formato JSON senza che dobbiate fare nulla.

Volendo possiamo fare anche il submit di un form:

$ http -f POST sito.com hello=World

Notate che abbiamo indicato il metodo (POST) e il valore.

Per eseguire un upload:

$ http sito.com < file

Per fare un download:

$ http sito.com/file > file

Ci stanno un'altra marea di opzioni e funzionalità avanzate che potete vedere al link postato ad inizio pagina; qui vi ho mostrato quelle basiche.

Provate ad ottenere gli stessi risulati con cURL per vedere le differenze.

Ciao!!