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.comiletirseniz, GET kullanacaktır. Eğer kullanırsanız -dveya -Fcurl, POST kullanacak, -Ibir HEAD'e neden -Tolacak 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, -Eve -Tseçeneklerini belirtmenin eşdeğeridir ve bu tamamen farklı bir şey yapar.
Ayrıca --getkonuları karıştırmamak için bir curl seçeneği de var . -dPOST 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, -vkullanı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 -dseç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: */*