Ce este cURL command-line sintaxa pentru a face o cerere POST?

Cum pot face un POST cerere cURL instrument de linie de comandă?

Comentarii la întrebare (1)

Cu domeniile:

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

Cu câmpurile specificate în mod individual:

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

Mai multe părți:

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

Multipart cu câmpuri și un nume de fișier:

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

Fără date:

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

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

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

Pentru mai multe informații, a se vedea cURL manual. De cURL tutorial pe emularea un browser web este de ajutor.

Cu libcurl, folosi curl_formadd() funcția de a construi formular înainte de a trimite-l în mod obișnuit. Vezi libcurl documentația pentru mai multe informații.

Pentru fișiere mari, luați în considerare adăugarea de parametri pentru a arăta progresul încărcării:

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

-O ieșire este necesar, în caz contrar, bara de progres nu va apărea.

Comentarii (6)

Pentru un Odihnitor HTTP POST care conține XML:

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

sau pentru JSON, foloseste asta:

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

Acest lucru va citi conținutul fișierului nume filename.txt și trimite-l ca o cerere post.

Comentarii (5)

Date de la intrarea standard cu -d @-

Exemplu:

echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown

Ieșire:

<p>Hello <strong>world</strong>!</p>
Comentarii (2)
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi 

este un exemplu se găsește în Curl Exemplu Manuală.

Utiliza %26 pentru ampersand deși dacă cele de mai sus nu't de lucru:

curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi 
Comentarii (0)

Dacă doriți să vă conectați la un site, face următoarele:

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/

Prima cerere salvează cookie de sesiune (care este furnizat la conectare cu succes) în "cap" fișier. De acum puteți utiliza cookie pentru a vă autentifica la orice parte a site-ului care de obicei acces după ce vă autentificați cu un browser.

Comentarii (1)
curl -v --data-ascii var=value http://example.com

și există mult mai multe opțiuni, verificați `curl --help pentru mai multe informații.

Comentarii (0)

Dacă ești leneș, puteți obține google-chrome pentru a face toate lucrările pentru tine.

  1. Faceți clic dreapta pe formularul pe care doriți să trimiteți și selectați Verificați. Aceasta va deschide DevTools panou.
  2. Selectați Rețea tab în devtools și bifați Păstra log selectare.
  3. Trimiteți formularul și localizați intrarea cu metoda POST (click-dreapta pe orice titlu de coloană și asigurați-vă că **** Metode este verificat).
  4. Faceți clic dreapta pe linie, cu POST, și selectați Copia > Copie ca cURL.

Chrome va copia toate solicitarea de date în cURL sintaxă.

Chrome foloseste --date &#39;param1=alo&param2=lume&#39; care puteți face mai ușor de citit folosind un singur -d " sau "- F per parametru, în funcție de ce tip de cerere POST doriți să trimiteți, care poate fi application/x-www-form-urlencoded " sau " multipart/form-data în mod corespunzător.

Acest lucru va fi POST-ed ca application/x-www-form-urlencoded (folosit pentru majoritatea formelor pe care don't conține încărcări de fișiere):

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

Pentru o multipart/form-data POST folosi -F (de obicei folosit cu formele care conțin încărcări de fișiere, sau în cazul în care ordinea câmpurilor este important, sau în cazul în care mai multe câmpuri cu același nume sunt necesare):

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

User-Agent antet nu este în mod normal necesară, dar nu'am aruncat-o în doar în cazul în. Puteți evita să setați user agent pe fiecare cerere, prin crearea ~/.curlrc fișierul care conține, de exemplu, User-Agent: "Opera/2.2"

Comentarii (0)