1. Anasayfa
  2. Yazılım

Httpie Aracı Kurulumu ve Kullanımı

Httpie Aracı Kurulumu ve Kullanımı
0

Httpie http isteklerinizi komut satırı ile kullanabilmenizi sağlayan bir araçtır. Curl aracına benzemektedir, kullanım kolaylığı ve esnek yapısı sebebiyle temel araçlarım arasına girmeyi başarmıştır.

Httpie Kurulumu

# Debian, Ubuntu, etc. 
$ apt install httpie
# Fedora
$ dnf install httpie
# CentOS, RHEL, ...
$ yum install httpie
# Arch Linux
$ pacman -S httpie
# Windows (Python 3.6 veya daha üstü gerekir.)
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie
# MacOS
$ brew install httpie

Httpie Kullanımı

Syntax yapısı:

http [flags] [METHOD] URL [ITEM [ITEM]]

En basit hali ile:

Herhangi bir parametre belirtmediğimiz için sunucuya GET kullanarak istek atıyor.

http https://httpie.org/hello

GET İsteği Atma:

http GET https://httpbin.org/get details==12
{
    "args": {
        "details": "12"
    },
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Host": "httpbin.org",
        "User-Agent": "HTTPie/2.1.0",
        "X-Amzn-Trace-Id": "Root=1-5ea85602-2dc02d5cfce569707e021a6b"
    },
    "url": "https://httpbin.org/get?details=12"
}

Görüldüğü üzere yollamış olduğumuz değerler başarıyla iletdi. Eğer post isteği atmak istersek değeri atarken tek eşittir kullanmalıyız oda şu şekilde olacak.

POST İsteği Atma:

http POST https://httpbin.org/post username=admin password=1234
{
    "args": {},
    "data": "{\"username\": \"admin\", \"password\": \"1234\"}",
    "files": {},
    "form": {},
    "headers": {
        "Accept": "application/json, */*;q=0.5",
        "Accept-Encoding": "gzip, deflate",
        "Content-Length": "41",
        "Content-Type": "application/json",
        "Host": "httpbin.org",
        "User-Agent": "HTTPie/2.1.0",
        "X-Amzn-Trace-Id": "Root=1-5ea8565f-5fb7e3304fb4827eaa71ebdd"
    },
    "json": {
        "password": "1234",
        "username": "admin"
    },
    "url": "https://httpbin.org/post"
}

Post isteğini forum şekilinde atmak istersek –form parametresini eklemeliyiz.

http --form POST https://httpbin.org/post username=admin password=1234

PUT ve DELETE istegi atma:

http PUT https://httpbin.org/put fiyat=500 satis=88
http DELETE https://httpbin.org/put fiyat=500 satis=88
#PUT İsteği
{
    "args": {},
    "data": "{\"fiyat\": \"500\", \"satis\": \"88\"}",
    "files": {},
    "form": {},
    "headers": {
        "Accept": "application/json, */*;q=0.5",
        "Accept-Encoding": "gzip, deflate",
        "Content-Length": "31",
        "Content-Type": "application/json",
        "Host": "httpbin.org",
        "User-Agent": "HTTPie/2.1.0",
        "X-Amzn-Trace-Id": "Root=1-5ea85740-81ae46c2870d9b1241ec0674"
    },
    "json": {
        "fiyat": "500",
        "satis": "88"
    },
    "url": "https://httpbin.org/put"
}

User-Agent bilgisini değiştirmek istersek eğer oda şu şekilde oluyor.

http GET https://httpbin.org/get User-Agent:dilekcibrowser
{
    "args": {},
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Host": "httpbin.org",
        "User-Agent": "dilekcibrowser",
        "X-Amzn-Trace-Id": "Root=1-5ea85875-31192a88e1ca7a3f5d0f9b09"
    },
    "url": "https://httpbin.org/get"
}
  • Eğer local’de çalışıyor veya geçersiz sertfika uyarısını geçmek istiyorsak –verify=no parametresi ekliyoruz.
  • Eğer sayfada bir yönlendirme varsa –follow parametresi ekleyerek istek attığımız sayfayı takip etmesini sağlıyoruz.
http --verify=no –-follow https://httpie.org/hello

Http isteği ile sadece Header kısmını yanıt olarak istiyorsak –headers. Body alanını istiyorsak –body istek ve yanıtların hepsini görmek istiyorsak –verbose komutunu kullanıyoruz.

http --headers httpbin.org/headers

Http isteği ile Header kısmına değer eklemek istiyorsak. Head : Değer şekilde tanımlama yapıyoruz.

http httpbin.org/headers Burasi:Turkey
{
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Burasi": "Turkey",
        "Host": "httpbin.org",
        "User-Agent": "HTTPie/2.1.0",
        "X-Amzn-Trace-Id": "Root=1-5ea86aa6-50703f4e7fc148822f642dd4"
    }
}

Bir sayfadan verileri alıp başka bir sayfaya POST etmek istiyorsak.

http GET https://api.github.com/repos/jakubroztocil/httpie | http POST httpbin.org/post

Bir dosyayı veya sayfayı indirmek istersek.

http --download https://releases.ubuntu.com/18.04.4/ubuntu-18.04.4-desktop-amd64.iso

İndireceğimiz dosyayı farklı bir isimle indirmek istersek. –output metodunu kullanabiliriz.

http --download https://releases.ubuntu.com/18.04.4/ubuntu-18.04.4-desktop-amd64.iso --output acbd.iso

Dosya inerken duraklatmayı veya bağlantı kesilip tekrar bağlandığında, indirme işlemini devam ettirebilen sunucularda bu özelliği (HTTP/1.1 206 Partial Content) kullanmak istersek. –output ve –continue methodunu birlikte kullanarak bu işlemi gerçekleştirebiliriz.

http --download https://releases.ubuntu.com/18.04.4/ubuntu-18.04.4-desktop-amd64.iso --output acbd.iso --continue
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Connection: Keep-Alive
Content-Length: 2093350912
Content-Range: bytes 33193984-2126544895/2126544896
Content-Type: application/x-iso9660-image
Date: Tue, 28 Apr 2020 20:25:11 GMT
ETag: "7ec08000-59db0419bf607"
Keep-Alive: timeout=5, max=100
Last-Modified: Mon, 03 Feb 2020 18:40:24 GMT
Server: Apache/2.4.29 (Ubuntu)


Downloading 1.98 GB to "acbd.iso"
 /   2.03 %   41.19 MB    1.42 MB/s  0:23:19 ETA

Httpie aracınının başlıca özelliklerini bu yazımızda görmüş olduk eğer daha fazla bilgi istiyorsanız, Httpie aracının dökümasyon sayfasına burdan bakabilirsiniz.

Paylaş

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir