1. Ana Sayfa
  2. Yazılım
  3. Httpie Aracı Kurulumu ve Kullanımı

Httpie Aracı Kurulumu ve Kullanımı

httpie-banner

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.

Yorum Yap

Yazar Hakkında

Teknolojik ve Yazılımsal olan her şeye aşırı derece ilgi duyan birinin, bir nevi günlük defteri. Bu yolda kazandığım bilgi ve deneyimleri sizlerle paylaşıyorum.

Yorum Yap