2008-09-17 15:39:01 +0000 2008-09-17 15:39:01 +0000
2240
2240

Wat is de cURL-opdrachtregelsyntaxis om een POST-aanvraag te doen?

Hoe kan ik een POST-aanvraag doen met het cURL-opdrachtregelgereedschap?

Antwoorden (7)

2607
2607
2607
2008-09-17 15:43:28 +0000

Met velden:

curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi

Met individueel gespecificeerde velden:

curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi

Multipart:

curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi

Multipart met velden en een bestandsnaam:

curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi

Zonder gegevens:

curl --data '' https://example.com/resource.cgi

curl -X POST https://example.com/resource.cgi

curl --request POST https://example.com/resource.cgi

Voor meer informatie zie de cURL-handleiding . De cURL tutorial over het nabootsen van een webbrowser is nuttig.

Met libcurl gebruikt u de curl_formadd()-functie om uw formulier op te bouwen voordat u het op de gebruikelijke manier verstuurt. Zie de libcurl documentatie voor meer informatie.

Voor grote bestanden kunt u overwegen parameters toe te voegen om de voortgang van het uploaden te tonen:

curl --tr-encoding -X POST -v -# -o output -T filename.dat \
  http://example.com/resource.cgi

De -o output is vereist, anders verschijnt er geen voortgangsbalk.

517
517
517
2011-03-10 08:29:31 +0000

Voor een RESTful HTTP POST met XML:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"

of voor JSON, gebruik deze:

curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"

Dit zal de inhoud van het bestand met de naam filename.txt lezen en als postverzoek versturen.

137
137
137
2014-03-25 19:35:44 +0000

Gegevens van stdin met -d @-

Voorbeeld:

echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
<p>Hello <strong>world</strong>!</p>
69
69
69
2008-09-17 15:42:15 +0000
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi

is het voorbeeld dat te vinden is in de Curl Voorbeeld handleiding .

Gebruik %26 voor de amperzanden als het bovenstaande niet werkt:

curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
63
63
63
2012-03-04 02:21:37 +0000

Als u wilt inloggen op een site, doe dan het volgende: curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login curl -L -b headers http://localhost/

Het eerste verzoek slaat de sessiecookie (die wordt verstrekt bij het succesvol inloggen) op in het “headers”-bestand. Vanaf nu kunt u die cookie gebruiken om u te authenticeren op elk deel van de website dat u normaal gesproken benadert na het inloggen met een browser.

35
35
35
2008-09-17 15:43:02 +0000
curl -v --data-ascii var=value http://example.com

en er zijn nog veel meer opties, kijk op curl --help voor meer informatie.

33
33
33
2017-09-29 08:06:57 +0000

Als je lui bent, kun je google-chrome of firefox krijgen om al het werk voor je te doen.

  1. 1. Klik met de rechtermuisknop op het formulier dat u wilt verzenden en selecteer Inspect (of Inspect Element voor Firefox). Dit opent het DevTools paneel.
  2. 2. Selecteer het tabblad Network in devtools en vink het vakje Reserveringslog aan ( Persist Logs voor firefox).
  3. Klik met de rechtermuisknop op het tabblad Inspect Element_ voor Firefox. 3. Dien het formulier in en zoek de invoer met methode POST (klik met de rechtermuisknop op een willekeurige kolomkop en zorg ervoor dat Methode is aangevinkt).
  4. Klik op het tabblad Preserveer logboek in devtools en vink het vakje Preserveer logboek aan. 4. Klik met de rechtermuisknop op de regel met POST, en selecteer Kopiëren > Kopiëren als cURL.

Chrome kopieert alle aanvraaggegevens in cURL-syntax.

Chrome gebruikt --data 'param1=hello&param2=world' die u leesbaarder kunt maken door een enkele -d of -F per parameter te gebruiken, afhankelijk van welk type POST-aanvraag u wilt verzenden, die naar keuze application/x-www-form-urlencoded of multipart/form-data kan zijn.

Dit wordt POST-ed als application/x-www-form-urlencoded (gebruikt voor de meeste formulieren die geen bestandsuploads bevatten):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -d param1=hello \
    -d name=dinsdale

Voor een multipart/form-data POST gebruik je -F (typisch gebruikt voor formulieren die bestandsuploads bevatten, of waar de volgorde van de velden belangrijk is, of waar meerdere velden met dezelfde naam nodig zijn):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -F param1=hello \
    -F name=dinsdale \
    -F name=piranha

De User-Agent header is normaal gesproken niet nodig, maar ik heb hem gewoon in het geval gegooid. Als u een aangepaste agent nodig heeft dan kunt u voorkomen dat u deze op elk verzoek moet instellen door het ~/.curlrc bestand aan te maken dat bijv. User-Agent: "Mozilla/2.2" bevat