Yanıtlar:
Alanları ile:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
Tek tek belirtilen alanlarla:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
Çok parçalı:
curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi
Alanlar ve bir dosya adıyla çok bölüm:
curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
Veri olmadan:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
Daha fazla bilgi için cURL kılavuzuna bakınız . Bir web tarayıcısı taklit üzerine cURL öğretici yararlıdır.
Libcurl ile curl_formadd()
formunuzu her zamanki gibi göndermeden önce bu fonksiyonu kullanın. Daha fazla bilgi için libcurl belgelerine bakın .
Büyük dosyalar için, yükleme ilerlemesini göstermek üzere parametreler eklemeyi düşünün:
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
-o output
Aksi hiçbir ilerleme çubuğu belirecektir, gereklidir.
--data-urlencode
(çizgi yok), en son sürümlerde en az
With Fields
, ne zaman Multipart
ve ne zaman yapabilirim Without Data
?
--data
Senin yerine kullanabilirsin -d
.
XML içeren bir RESTful HTTP POST için:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
veya JSON için şunu kullanın:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
Bu, adlandırılmış dosyanın içeriğini okuyacak filename.txt
ve gönderim isteği olarak gönderecektir.
curl -X POST
bir HTTP POST isteğini ifade eder, -d
parametre (uzun versiyon :) , --data
aşağıdakilere POST parametreleri olacağını söyler @filename
ve dosyanın içeriğini filename
parametre olarak atar. Bu yaklaşım Twitter, Facebook, Ruby on Rails ve diğer CouchDB gibi veritabanlarının HTTP API'leri de dahil olmak üzere diğer web servislerinde bulunan RESTful HTTP API'leri ile en iyi şekilde çalışır. REST Temsilci devlet aktarımı
-X POST
ima edildiğinden bu yana ayrılabileceğini düşünüyorum -d
.
Stdin 'den veriler -d @-
Örnek:
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
Çıktı:
<p>Hello <strong>world</strong>!</p>
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
Curl Örnek Kılavuzunda bulunan örnek .
Yukarıdakiler işe yaramazsa da, işaretler için% 26 kullanın:
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
Bir siteye giriş yapmak istiyorsanız, aşağıdakileri yapın:
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
İlk istek, oturum çerezini (başarılı oturum açıldığında verilir) "başlıklar" dosyasına kaydeder. Şu andan itibaren bu çerezi, bir tarayıcıyla giriş yaptıktan sonra genellikle erişeceğiniz web sitesinin herhangi bir bölümünde doğrulamak için kullanabilirsiniz.
curl -v --data-ascii var=value http://example.com
ve daha birçok seçenek var, curl --help
daha fazla bilgi için kontrol edin .
Tembel iseniz, sizin için tüm işleri yapmak için google-chrome alabilirsiniz.
Chrome, tüm istek verilerini cURL sözdiziminde kopyalar.
Krom kullanan --data 'param1=hello¶m2=world'
tek kullanarak daha okunabilir hale hangi -d
ya -F
bağlı başına parametreyi POST hangi tür ya olabilen, göndermek istediğiniz talep üzerine application/x-www-form-urlencoded
veya multipart/form-data
buna göre.
Bu, POST olarak yayınlanacaktır application/x-www-form-urlencoded
( dosya yüklemesi içermeyen formların çoğu için kullanılır ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
Bir için multipart/form-data
SONRASI kullanımı -F
( tipik olarak dosya yükleme içeren, veya formlar kullanılabilir alanların sırası önemlidir, veya aynı isimde birden fazla alanın gerekli olduğu yerlerde ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
User-Agent
Başlık normalde gerekli değildir, ama her ihtimale karşı onu attım. ~/.curlrc
Örneğin içeren dosyayı oluşturarak kullanıcı aracısını her istek üzerine ayarlamaktan kaçınabilirsiniz.User-Agent: "Mozilla/2.2"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data