Yanıtlar:
Varsayılan olarak, hangi istek yönteminin kullanılacağını açıkça belirtmeden curl kullanırsınız. Sadece bir HTTP URL'sini curl http://example.com
iletirseniz, GET kullanacaktır. Eğer kullanırsanız -d
veya -F
curl, POST kullanacak, -I
bir HEAD'e neden -T
olacak ve onu bir PUT haline getirecektir.
Herhangi bir nedenle curl'nin sizin için yaptığı bu varsayılan seçimlerden memnun değilseniz, belirterek bu istek yöntemlerini geçersiz kılabilirsiniz -X [WHATEVER]
. Bu şekilde, örneğin yaparak bir DELETE gönderebilirsiniz curl -X DELETE [URL]
.
Bu nedenle curl -X GET [URL]
, GET'in zaten kullanılacağı gibi yapmak anlamsızdır . Aynı şekilde yapmak anlamsızdır curl -X POST -d data [URL]...
Ancak, GET isteğinde bir istek gövdesi gönderen eğlenceli ve biraz nadir bir istekte bulunabilirsiniz curl -X GET -d data [URL]
.
curl -GET
(tek bir çizgi kullanmak) bu amaç için yanlıştır. Bu -G
, -E
ve -T
seçeneklerini belirtmenin eşdeğeridir ve bu tamamen farklı bir şey yapar.
Ayrıca --get
konuları karıştırmamak için bir curl seçeneği de var . -d
POST yerine ile belirtilen verileri GET isteğine dönüştürmek için kullanılan -G'nin uzun biçimidir .
(Bunu kapsayacak şekilde curl SSS bölümünü doldurmak için burada kendi cevabımı kullandım .)
Curl'nin modern sürümleri, -v
kullanıcıları bilinçlendirmek için ayrıntılı mod etkinleştirildiğinde ( ) -X'in bu gereksiz ve potansiyel olarak zararlı kullanımı hakkında kullanıcıları bilgilendirecektir. Bu blog yazısında daha fazla açıklanmış ve motive edilmiştir .
Curl'den bir dizi -d
seçeneği dönüştürmesini isteyebilir ve bunları POST ile istek gövdesine göndermek yerine URL'nin sorgu dizesinin sonuna yerleştirip `-G kullanarak bir GET düzenleyebilirsiniz. Bunun gibi:
curl -d name=daniel -d grumpy=yes -G https://example.com/
Kullanımı -X [WHATEVER]
yalnızca isteğin HTTP isteğinde kullanılan yöntem dizesini değiştirir . Biri olan -X [WHATEVER]
diğeri olmayan iki örnek ve her biri için ilişkili HTTP istek başlıkları ile bunu anlamak daha kolaydır :
# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*