2011-12-14 21 views
70

Curl, bir X ile önek verilen bir dizi farklı http yöntemi çağrısı sunar, ancak aynı yöntemleri olmadan sunar. İkisini de denedim ve farkı anlayamıyorum. Birisi bana bu iki operasyonun nasıl farklı olduğunu hızlıca anlatabilir mi?curl -GET ve -X GET

cevap

157

Varsayılan olarak, hangi istek yönteminin kullanılacağını açıkça belirtmeden curl kullanırsınız. Sadece curl http://example.com gibi bir HTTP URL'sini iletirseniz, GET kullanacaktır. -d veya -F curl kullanırsanız POST, -I HEAD ve -T bir PUT yapar.

Hangi nedenle olursa olsun, sizin için geçerli olan bu varsayılan seçimlerden memnun değilseniz, -X [WHATEVER] belirterek bu istek yöntemleri geçersiz kılabilirsiniz. Bu şekilde örneğin curl -X DELETE [URL] yaparak bir DELETE gönderebilirsiniz.

Bu nedenle, GET zaten kullanılacak gibi curl -XGET [URL] yapmak anlamsızdır. Aynı şekilde, curl -X POST -d data [URL]... yapmak anlamsızdır. Ancak, GET isteğinde bir istek-bedenini curl -X GET -d data [URL] gibi bir şeyle gönderen eğlenceli ve biraz nadir bir istekte bulunabilirsiniz. derin (tek bir tire kullanarak)

curl -GET bu amaç için sadece yanlış Kazı

. Bu, -G, -E ve -T seçeneklerinin belirtilmesiyle eşdeğerdir ve bu tamamen farklı bir şey yapar.

Ayrıca, herhangi biriyle karıştırmamak için --get adlı bir kıvrılma seçeneği de vardır. -d ile belirtilen verileri bir POST yerine bir GET isteğine dönüştürmek için kullanılan -G biçimidir.

, bu bu gereksiz kullanımı hakkında kullanıcıları bilgilendirecek 7.45.0 yılında

Uyarılar ve kıvrılma Modern sürümlerinde sonra

(Ben sonradan. curl FAQ to cover this doldurmak için buraya kendi cevap kullanılır) Verbose modu etkinleştirildiğinde -X (-v) - kullanıcıları bilinçlendirmek için. Daha fazla açıklanmış ve this blog post'da motive edilmiştir.

+1

-XGET no-op olabilir, ancak bunu açık hale getirir. – mtyson

+0

"Öntanımlı olarak, hangi istek yönteminin kullanılacağını açıkça söylemeden curl kullanacaksınız. Http://example.com kıvrımlı bir HTTP URL'sini iletiyorsanız, GET kullanacaktır. Eğer -d veya -F curl kullanırsanız POST kullanacaksınız -Bir HEAD'e sebep olacak ve -T onu bir PUT yapacak. Bilmen gereken herşey. – Donato

0

Belki de sorunuzu takip etmiyorum, ama GET yöntemini kullanmak için curl söylüyorum ve daha sonra istediğiniz yöntemleri yapmak için -X seçeneği olan -G seçeneği var gibi görünüyor. Yani curl -G ve curl -XGET aynı şey olurdu. -GET görmüyorum, kıvırmanın -G'den sonra hiçbir şeyi görmezden geldiği anlaşılıyor.

+2

Aslında "bukle Çık" 'al' varsayılan geçersiz izin -G -E ve -T eşittir. Kıvrılacak tüm uzun isim seçenekleri, --url veya --user'de olduğu gibi iki tire ile kullanılır. –

+0

Evet, bu doğru. Orada düşünmüyordum. – masebase

3

-x [yönteminiz]
x

+0

no, küçük harf-x kullanılacak proxy'yi ayarlar ... –