httpie: un cliente de línea de comandos HTTP alternativo de Curl en Linux
En este tutorial, te mostraré httpie que es un cliente HTTP de línea de comando moderno, una herramienta alternativa para curl. httpie es un Proyecto GitHub de Jakub Roztocil que se ha beneficiado de algunas contribuciones en Github. La herramienta httpie se ve como un moderno cliente http de línea de comandos que hace interacción CLI con los servicios web y proporciona un comando http que permite enviar solicitudes HTTP arbitrarias utilizando una sintaxis simple y natural, y muestra una salida coloreada.
Ofrece soporte para algunas características como JSON integrado, HTTPS, coloración de sintaxis, proxies, autenticación, sesiones persistentes, buen soporte de Python (2.6, 2.7 y 3.x) y algunas otras que puedes descubrir.
1) Instalar httpie
De forma predeterminada, httpie está presente en su repositorio de Linux y se puede instalar directamente a través de los paquetes
# yum install httpie Loaded plugins: fastestmirror base | 3.6 kB 00:00:00 epel/x86_64/metalink | 13 kB 00:00:00 epel | 4.3 kB 00:00:00 Dependencies Resolved ====================================================================================================================================================== Package Arch Version Repository Size ====================================================================================================================================================== Installing: python2-httpie noarch 0.9.4-1.el7 epel 100 k Installing for dependencies: jbigkit-libs x86_64 2.0-11.el7 base 46 k libtiff x86_64 4.0.3-27.el7_3 base 170 k libwebp x86_64 0.3.0-7.el7 base 170 k python-chardet noarch 2.2.1-1.el7_1 base 227 k Installed: python2-httpie.noarch 0:0.9.4-1.el7 Dependency Installed: jbigkit-libs.x86_64 0:2.0-11.el7 libtiff.x86_64 0:4.0.3-27.el7_3 libwebp.x86_64 0:0.3.0-7.el7 python-chardet.noarch 0:2.2.1-1.el7_1 python-pillow.x86_64 0:2.0.0-19.gitd1c6db8.el7 python-pygments.noarch 0:1.4-10.el7 python-requests.noarch 0:2.6.0-1.el7_1 python-six.noarch 0:1.9.0-2.el7 python-urllib3.noarch 0:1.10.2-3.el7 Complete!
2) Cómo usar httpie
Ahora que hemos instalado httpie, debemos conservar la siguiente sintaxis.
http [flags] [METHOD] URL [ITEM [ITEM]]
Y podemos ver cómo usarlo con el comando de ayuda.
# http --help usage: http [--json] [--form] [--pretty {all,colors,format,none}] [--style STYLE] [--print WHAT] [--headers] [--body] [--verbose] [--all] [--history-print WHAT] [--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] [--max-redirects MAX_REDIRECTS] [--timeout SECONDS] [--check-status] [--verify VERIFY] [--ssl {ssl2.3,ssl3,tls1,tls1.1,tls1.2}] [--cert CERT] [--cert-key CERT_KEY] [--ignore-stdin] [--help] [--version] [--traceback] [--debug] [METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]] HTTPie - a CLI, cURL-like tool for humans. <http://httpie.org> METHOD The HTTP method to be used for the request (GET, POST, PUT, DELETE, ...). This argument can be omitted in which case HTTPie will use POST if there is some data to be sent, otherwise GET: $ http example.org # => GET $ http example.org hello=world # => POST
El argumento requerido es la URL para usar el comando. Por ejemplo, puede usar httpie para publicar un comentario en un sitio directamente a través de su terminal como se muestra a continuación:
# http -a USERNAME POST https://api.github.com/repos/jakubroztocil/httpie/issues/83/comments body='HTTPie is awesome! :heart:'
Puede verificar el resultado directamente en el problema de github página de publicación del proyecto
a) Solicitar URL
El uso básico de httpie es solicitar la URL del sitio web.
# http google.com
b) Descarga un archivo
Puede descargar un archivo con el --download
parámetro de htppie. Funciona como comando wget
# http --download https://blog.linoxide.com/wp-content/uploads/2017/09/kubernetes-monitoring.jpg
Es posible cambiar directamente el nombre del archivo descargado durante el proceso con el-o
parámetro de la siguiente manera:
# http --download https://blog.linoxide.com/wp-content/uploads/2017/09/kubernetes-monitoring.jpg -o kubernetes.jpg
Cuando usa el -o
parámetro, puede reanudar la descarga con el -c
parámetro
c) Autenticarse en la URL
El httpie admite la autenticación a través de dos métodos: el básico y digerir autenticación. Tiene la posibilidad de insertar directamente la contraseña en el terminal durante el proceso, pero también puede elegir que se le solicite su contraseña durante el proceso. Para la autenticación básica con contraseña solicitada, haga lo siguiente:
# http -a alainfrancois linoxide.com http: password for alainfrancois@linoxide.com:
O puede usar directamente su contraseña de la siguiente manera:
# http -a alainfrancois:password linoxide.com
Se puede instalar algún mecanismo de autenticación adicional como complementos como AWS / Amazon S3 (httpie-aws-auth) o JWTAuth (httpie-jwt-auth).
d) Crear una sesión
httpie tiene la particularidad de admitir sesiones persistentes. Puedes crear sesiones nombradas, anónimo y sesiones de solo lectura.
Puede crear una o más sesiones con nombre por host como se muestra a continuación:
# http --session=user1 -a user1:password example.org X-Foo:Bar
e) Envío de solicitud
Una de las cosas que puede agregar a la solicitud con solicitar artículos son los parámetros GET de la siguiente manera:
# http https://httpbin.org/get foo==bar wicked==witch
El httpie es una gran herramienta que puede hacer el mismo trabajo que curl. Puedes ir directamente al proyecto oficial de GitHub para más información.