apa itu linux curl

青灯夜游
Lepaskan: 2023-04-20 17:05:46
asal
3464 orang telah melayarinya

Dalam Linux, curl ialah alat yang sangat praktikal untuk memindahkan data ke dan dari pelayan Ia adalah alat pemindahan fail yang menggunakan peraturan URL untuk berfungsi di bawah baris arahan ia menyokong muat naik dan muat turun alat penghantaran yang komprehensif. Curl menyediakan banyak fungsi yang sangat berguna, termasuk akses proksi, pengesahan pengguna, muat naik dan muat turun ftp, HTTP POST, sambungan SSL, sokongan kuki, resume titik putus dan sebagainya.

apa itu linux curl

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Dalam Linux, curl ialah alat pemindahan fail yang menggunakan peraturan URL untuk berfungsi di bawah baris arahan Ia boleh dikatakan sebagai alat baris arahan http yang sangat berkuasa. Ia menyokong muat naik dan memuat turun fail dan merupakan alat penghantaran yang komprehensif Walau bagaimanapun, mengikut tradisi, adalah kebiasaan untuk memanggil URL sebagai alat muat turun.

curl ialah alat yang sangat praktikal untuk memindahkan data ke dan dari pelayan protokol yang disokong termasuk (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS , POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET dan TFTP), curl direka untuk menyelesaikan kerja tanpa interaksi pengguna curl menyediakan banyak fungsi yang sangat berguna, termasuk akses proksi, pengesahan pengguna, muat naik dan muat turun FTP, HTTP POST, sambungan SSL, sokongan kuki, resume titik putus...

1 Arahan lencong yang paling biasa digunakan

1. Hantar permintaan GET

curl URL
Salin selepas log masuk
curl URL?a=1&b=nihao
Salin selepas log masuk

2 Hantar permintaan POST

curl -X POST -d 'a=1&b=nihao' URL
Salin selepas log masuk

3 >

curl -H "Content-Type: application/json" -X POST -d '{"abc":123,"bcd":"nihao"}' URL
Salin selepas log masuk
curl -H "Content-Type: application/json" -X POST -d @test.json URL
Salin selepas log masuk
Antaranya,

-H mewakili pengepala dan -X menentukan jenis permintaan (POST/GET/ HEAD/DELETE/ PUT/PATCH), -d mewakili data yang dihantar. Ini adalah yang paling biasa digunakan.
Lihat semua arahan curl: man curl atau curl -h
Pengepala permintaan: H,A,e
Pengepala respons: I,i,D
cookie: b,c,j
Penghantaran: F(POST), G(GET), T(PUT), --trace-ascii,--trace-time



Penjelasan terperinci sintaks arahan curl dan parameter arahan curl

1. parameter arahan curl

Memandangkan fungsi linux curl sangat berkuasa, Terdapat banyak parameter arahan Jadual berikut hanya beberapa parameter yang dipilih oleh Aiezu (aiezu.com). parameter, sila jalankan arahan "man curl" untuk melihat.

Sila-H "name: value"(HTTP)Tambahkan pengepala http (pengepala permintaan http);-H "name:"(HTTP) Alih keluar pengepala http (pengepala permintaan http); -A "rentetan"(HTTP) Tetapkan pengepala permintaan Http "User-Agent". Pelayan boleh menentukan nama penyemak imbas dan jenis sistem pengendalian yang digunakan oleh klien melalui "User-Agent". buat keputusan yang salah. -e (HTTP) Tetapkan halaman sumber apabila mengakses dan beritahu perkhidmatan http dari halaman mana untuk memasuki halaman ini; cincin-I (HTTP) sahaja Output HTTP-header, jangan dapatkan kandungan (HTTP/FTP/FILE). -i( HTTP) Output Pengepala HTTP dan kandungan kembali; -D (HTTP) Buang http pengepala respons untuk Tentukan fail; kuki-b name=data(HTTP ) Hantar kuki Data dihantar ke pelayan HTTP, format data ialah: "NAME1=VALUE1; NAME2=VALUE2"; -c nama fail(HTTP) Selepas menyelesaikan operasi, simpan kuki yang dikembalikan oleh pelayan ke fail yang ditentukan -j(HTTP) memberitahu curl untuk memberi sehingga semua "kuki sesi"; Gunakan akses proksi HTTP; port ditentukan, port 8080 digunakan secara lalai; http_proxy, HTTPS_PROXY, socks4, socks4a, socks5; proksi 8.8.8.8:8080; -pGunakan proksi SOCKS4 Gunakan proksi SOCKS4A; --proxy-anyauth --proxy-basicKaedah pengesahan proksi http, rujukan: --ntlm --dapatkan-d @fail -d "rentetan" --data "rentetan" Jika kandungan medan bermula dengan "@", bahagian yang tinggal hendaklah nama fail dan curl akan memuat naik fail, seperti: curl -F "pic=@pic.jpg" http :/ /aiezu.com; Contohnya: cat test.txt |curl "http://aiezu.com/a.php" -T - curl "http://aiezu.com/a.php" -T - < test.txt Wildcard ini juga boleh digunakan untuk parameter: curl -T "img[1-1000 ].png" http://aiezu.com Resume--asas(HTTP) memberitahu curl untuk menggunakan pengesahan Asas HTTP (apabila menggunakan protokol HTTP), iaitu kaedah pengesahan lalai (HTTP) Gunakan kaedah pengesahan NTLM untuk protokol HTTP --digest--berunding-u pengguna:kata laluan Jika anda hanya berikan nama pengguna, curl akan meminta anda memasukkan kata laluan; Jika anda menggunakan perpustakaan curl yang dibuka oleh "SSPI" untuk pengesahan "NTLM", anda boleh menggunakan pilihan "-u:" tanpa nama pengguna dan kata laluan untuk memaksa curl menggunakan nama pengguna dan kata laluan Log masuk semasa untuk pengesahan; 🎜> --sijil (SSL) menentukan fail sijil dan kata laluan sijil dalam "PEM " format; (SSL) memberitahu curl jenis sijil yang disediakan: PEM, DER, ENG, dsb.; Lalai ialah "PEM"; --fail rawak(SSL) menentukan nama laluan fail yang mengandungi data rawak; data digunakan untuk sambungan SSL Hasilkan benih rawak sebagai; --egd-file (SSL) ialah laluan yang ditentukan oleh penjana benih rawak EGD (Entropi Mengumpul soket Daemon) Nama; -1/--tlsv1(SSL) Gunakan TLS versi 2 untuk berkomunikasi dengan pelayan jauh Kunci peribadi--kunci < key>(SSL/SSH) tentukan satu nama fail kunci Peribadi apabila dinyatakan, cuba gunakan fail berikut secara automatik: "~/.ssh/id_rsa", "~/.ssh/id_dsa", " ./id_rsa'", "./id_dsa"; --key-type (SSL) menentukan jenis fail kunci peribadi, menyokong : DER, PEM, ENG, lalai ialah PEM; --pass (SSL/SSH) menentukan kata laluan fail kunci peribadi ; --pubkey (SSH) menggunakan kunci awam anda yang disediakan dalam fail yang ditentukan; >FTP-P --ftp-port Kad rangkaian: eth1 Anda boleh menambah nombor port: eth1:20000-21000;(FTP) semasa memuat naik, tukar suapan talian (LF) kepada pemulangan pengangkutan dan suapan baris ( CRLF);--ftp-akaun [data](FTP)maklumat akaun ftp;-- ftp-method [kaedah](FTP) Nilai pilihan: multicwd/ nocwd/singlecwd; --ftp-pasv(FTP ) Gunakan mod PASV (pasif)/EPSV --ftp-skip-pasv-ip(FTP) Apabila menggunakan PASV, langkau IP yang ditentukan ;--ftp-create-dirs(FTP) Buat direktori jauh secara automatik apabila memuat naik; 🎜> --use-ascii(FTP/LDAP) menggunakan mod penghantaran Ascii untuk FTP dan LDAP ia bersamaan dengan menggunakan "type= A;" mod dalam ftp. (FTP) memberitahu curl untuk melumpuhkan EPRT dan LPRT dalam mod aktif Had kelajuan-- kadar had Hadkan lebar jalur maksimum yang digunakan oleh curl jika unit tidak dinyatakan, unit lalai ialah "bait/saat", anda juga boleh menentukan unit sebagai "K", " M", "G", dsb. Unit, seperti: "--kadar-had 1m" mengehadkan lebar jalur maksimum kepada "1m bait/saat"; -yJika muat turun lebih perlahan daripada bait had kelajuan sesaat dalam tempoh masa kelajuan, muat turun akan dibatalkan jika masa kelajuan digunakan, kelajuan lalai -had akan menjadi 1 melainkan ditetapkan dengan -Y. Pilihan ini mengawal pemindahan dan dengan itu tidak akan menjejaskan sambungan perlahan dsb. Jika ini membimbangkan anda, cuba pilihan --sambung-tamat masa.-Y --keepalive-time < saat>Tetapkan keepalive time--no-keepaliveMatikan fungsi keepalive ; --tiada penimbalLumpuhkan penimbal strim output; Dayakan penimbalan strim output; -L --lokasi (dalam kod respons http ialah 3XX Apabila digunakan, seperti lompat 301, lompat 302) --dipercayai lokasi--sambung-masa Nyatakan tamat masa sambungan maksimum dalam; saat; -m saat --masa maksimum saat --senyapMod senyap. Jangan tunjukkan meter kemajuan atau mesej ralat; Pilihan-f --failBilangan percubaan semula yang gagal Masa percubaan semula maksimum; show-errorPaparkan mesej ralat dalam mod senyap; 🎜> --output failOutput kandungan yang dikembalikan ke fail. Akan disimpan sebagai: "a.txt", "b.txt"; curl "http: //aiezu. com/{a,b}_[1-3].txt" -o "#1#2.txt"; Akan disimpan sebagai: a1.txt, a2.txt, a3.txt , b1.txt, b2.txt, b3.txt Menentukan "-" akan menghala ke output standard "seperti konsol" ; --remote-name akan mengeluarkan kandungan yang dikembalikan ke fail dengan nama yang sama dengan fail dalam url dalam direktori semasa (tidak termasuk direktori); cipta hierarki direktori tempatan yang diperlukan -w Dalam parameter format, anda boleh menggunakan %{ kaedah variable_name} untuk menggunakan pembolehubah yang berkaitan bagi maklumat respons, seperti: %{content_type}, %{http_code}, % {local_ip}..., untuk lebih banyak pembolehubah, sila rujuk "man curl" gunakan "-" sebagai nama fail menghantar output ke output standard. --trace-ascii fileBuang semua data masuk dan keluar ke fail, termasuk maklumat penerangan, buang bahagian ASCII sahaja, lebih mudah dibaca ;Pilihan ini akan mengatasi pilihan -v, --verbose, --trace-ascii yang digunakan sebelum ini; Maklumat; --config Baca parameter daripada fail konfigurasi, rujukan: http://curl.haxx . se/docs/ --verbose memaparkan maklumat yang lebih terperinci dan digunakan semasa penyahpepijatan --manualPaparkan manual bantuan lengkap; 🎜>

Penjelasan parameter penuh curl -h:

Kumpulan parameter Parameter Penerangan
url url Satu atau lebih URL yang perlu dirangkak;
Berbilang kaedah kad bebas berikut:
1. http://{www,ftp,mail}.aiezu.com> 2. http: //aiezu.com/images/[001-999].jpg;
3. http://aiezu.com/images/[1-999].html
4. ftp:// aiezu. com/file[a-z].txt
Tolong
header
--header "name : value"
--header "name :"
--user-agent "string"

Anda juga boleh menggunakan "-H", "--header option" untuk menetapkan pilihan ini
--referer ;

-e "aiezu.com" bersamaan dengan "-H "Referer : www.qq .com"";
sepatutnya
header
--head
Apabila digunakan untuk perkhidmatan HTTP, dapatkan pengepala http halaman;
(seperti: curl -I http://aiezu.com)
Apabila digunakan untuk FTP/FILE, saiz fail dan terakhir pengubahsuaian akan diperolehi Masa;
(cth: curl -I file://test.txt)
--include
--dump-header
--cookie name=data


Jika tiada "=" dalam baris, nilai parameter akan dianggap sebagai nama fail kuki;

Data Kuki ini boleh dihantar oleh tajuk respons http pelayan "Set-Cookie:" baris
- -cookie-jar file name

Jika nilai parameter yang ditentukan ialah "-", ia akan diarahkan ke output standard "seperti konsol";
--junk-session-cookies
adalah bersamaan dengan memulakan semula penyemak imbas; /[user:pwd@]host[:port]
--proxy [protocol:/ /[user:pwd@]host[:port]
protokol lalai kepada http_proxy, nilai lain yang mungkin termasuk: -x "http_proxy://aiezu:123@aiezu.com:80"


--proxytunnel

Gunakan proksi parameter "-x" sebagai saluran untuk memproksi protokol bukan HTTP, seperti ftp;
--socks4a
--socks5
Gunakan proksi SOCKS5;
Parameter ini akan mengatasi parameter "-x"
- -proxy-diges
--proxy-negotiate
--proxy-ntlm
--anyauth
--asas
-- diges
--berunding

-U < user:password>
--proxy-user

Tetapkan nama pengguna dan kata laluan proksi;


Data
Penghantaran

-G
Jika parameter ini digunakan, data yang ditetapkan oleh parameter "-d/", "--data", dan "--data-binary" , dilampirkan pada url dan diminta dalam mod GET
--data-ascii "string"
--data-binary "string"
--data-urlencode "string"
(HTTP) Gunakan HTTP POST untuk menghantar "key/ data pasangan nilai", bersamaan dengan atribut borang penyemak imbas (kaedah="POST", enctype="application/x-www-form-urlencoded")
-d, --data: Mod HTTP POST data;
- -data-ascii: data HTTP POST ascii; , diikuti dengan fail, siarkan kandungan dalam fail itu; 🎜> --form name=content


(HTTP) Gunakan HTTP POST untuk menghantar berbilang jenis data yang serupa dengan "medan borang", yang bersamaan dengan menetapkan sifat borang penyemak imbas pada masa yang sama ( kaedah ="POST", enctype="multipart/form-data"), anda boleh menggunakan parameter ini untuk memuat naik fail binari.
curl -F "page=@a.html;type=text/html" http://aiezu.com
curl -F "page=@/tmp/a;filename =a .txt" http://aiezu.com

Jika kandungan medan bermula dengan "<", bahagian yang tinggal hendaklah nama fail, curl akan mendapat nilai medan ini daripada fail, seperti: curl -F "text=

--form-string

(HTTP ) serupa dengan "--form", tetapi "@" dan "<" tidak mempunyai makna istimewa; fail fail

Pindahkan fail ke URL jauh melalui "put";

Parameter pilihan hanya menggunakan aksara "-", dan kandungan fail akan dibaca melalui
curl -T "{file1,file2}" http://aiezu.com

Breakpoint

-C
--terus-di < offset>

Pindahan Resume Breakpoint, teruskan memuat turun/muat naik dari kedudukan yang ditentukan dalam pengepala fail
mengimbangi kedudukan permulaan pemindahan resume, jika nilai offset ialah "-", curl akan mengenal pasti secara automatik; kedudukan permulaan dalam fail dan mulakan penghantaran; /FILE) Hanya pindahkan bahagian kandungan yang ditentukan:
0 -499: 500 bait pertama
-500: 500 bait terakhir
9500-: 9500 bait pertama; -0,-1: 1 Bait pertama dan terakhir;
100-199,500-599: dua 100 bait; >

--ntlm
biasanya digunakan untuk tapak web IIS yang menggunakan NTLM
(HTTP) menggunakan penyulitan Pengesahan HTTP Digest, digunakan untuk protokol HTTP
Gunakan pilihan "-u/--user" untuk menghalang kata laluan daripada dihantar dalam teks yang jelas;

(HTTP) menggunakan kaedah pengesahan GSS-Negotiate untuk protokol HTTP
Tujuan utamanya adalah untuk menyediakan sokongan untuk pengesahan kerberos5; >--anyauth

(HTTP) memberitahu curl untuk memilih kaedah pengesahan yang sesuai secara automatik dan memilih kaedah yang paling selamat
- -pengguna pengguna :kata laluan

Gunakan pengesahan nama pengguna dan kata laluan ini akan mengatasi pilihan "-n", "--netrc" dan "--netrc-optional"
-E

--cert-type
--cacert (SSL) memberitahu curl bahawa fail sijil CA yang ditentukan mestilah Format "PEM" ;
--capath (SSL) memberitahu curl bahawa sijil CA dalam direktori yang ditentukan digunakan untuk pengesahan
ini Sijil mestilah dalam format "PEM";
--crlfile (HTTPS/FTPS) menyediakan fail format PEM untuk menentukan Senarai yang dibatalkan daripada sijil;
-k
--tidak selamat
(SSL) Menetapkan pilihan ini akan membenarkan sambungan dan pemindahan menggunakan SSL yang tidak selamat tanpa sijil.
SSL
Lain-lain
--sifir (SSL) menentukan kaedah penyulitan yang akan digunakan oleh SSL ; seperti : "aes_256_sha_256";
--enjin Tetapkan enjin penyulitan OpenSSL untuk operasi penyulitan -- senarai enjin "Lihat senarai enjin penyulitan yang disokong;
--tlsv1.0
--tlsv1.1
--tlsv1.2
-2/ --sslv2
-3/--sslv3
(SSL) Gunakan TLS versi 1.0 untuk berkomunikasi dengan pelayan jauh;
(SSL ) menggunakan TLS versi 1.1 untuk berkomunikasi dengan pelayan jauh
(SSL) menggunakan TLS versi 1.2 untuk berkomunikasi dengan pelayan jauh
(SSL) menggunakan SSL versi 2 untuk berkomunikasi; pelayan jauh;
(SSL) menggunakan SSL versi 3 Berkomunikasi dengan pelayan jauh
Kunci awam
(FTP) Dalam mod aktif FTP, tetapkan alamat untuk menunggu sambungan pelayan, seperti: IP: 8.8.8.8
Nama hos: aiezu.com



--crlf
-B

--disable-epsv
(FTP) memberitahu curl supaya tidak menggunakan EPSV apabila dalam PASV (mod pasif
--disable-eprt
--speed-time < time>
--had-kelajuan Jika muat turun lebih perlahan daripada kelajuan yang diberikan ini (dalam bait sesaat) untuk saat masa kelajuan ia akan dibatalkan dengan masa kelajuan ditetapkan dengan -y dan ialah 30 jika tidak ditetapkan.
pilihan
lain
-0/--http1.0 (HTTP) Paksa curl untuk menggunakan HTTP 1.0 Sebaliknya daripada menggunakan HTTP lalai 1.1;
--antara muka Gunakan antara muka kad rangkaian yang ditentukan untuk mengakses
curl --interface eth0 http:/ /aiezu.com
curl --interface 10.0.0.101 http://aiezu.com
-X
--request < ;command>
(HTTP) menentukan kaedah permintaan yang digunakan untuk berkomunikasi dengan pelayan, seperti: GET, PUT, POST, DELETE, dll., lalainya ialah GET; >
(HTTP/HTTPS) mengikut pengepala respons http "Lokasi:" untuk menghala ke halaman selepas lompatan;

( HTTP/HTTPS) Sama seperti "--lokasi", tetapi lompat Nama pengguna dan kata laluan sebelum lompatan akan dihantar kemudian; permintaan menggunakan algoritma pemampatan untuk memampatkan kandungan yang dikembalikan; keriting menyokong mampatan gzip Nyahmampat

Hadkan masa maksimum untuk keseluruhan operasi lencong, dalam saat; > -s
Ralat
(HTTP) Apabila sambungan gagal (400 atau lebih ralat), halaman ralat lalai tidak dikembalikan, tetapi ralat curl dikembalikan. masa maksimum
Selang percubaan semula

Output
-o fail
Jika anda menggunakan kad bebas untuk mendapatkan berbilang URL, anda boleh menggunakan "#" diikuti dengan "nombor jujukan berangka", dan curl akan menggantikannya secara automatik dengan kata kunci yang sepadan, seperti:
curl "http://aiezu .com/ {a,b}.txt" -o "#1.txt";
Jika anda ingin mencipta direktori simpanan mengikut peraturan, rujuk: "--create-dirs"

-O


--format tulis keluar

Selepas operasi selesai, tambah kandungan yang ditentukan pada penghujung mengembalikan maklumat; kandungan yang akan dilampirkan boleh menjadi rentetan "rentetan", yang diperoleh daripada fail "@filename", dapatkan "@-" daripada input standard
parameter format boleh menggunakan "n", "r", "t" dan aksara melarikan diri yang lain; >
Buang semua data masuk dan keluar ke fail, termasuk maklumat penerangan
Hantar output ke output standard menggunakan "-" sebagai nama fail.
-K

-v

Bantuan
-M
bantuan penggunaan linux curl;
Boleh menggunakan kaedah pengesahan "mana-mana"--asas Gunakan Pengesahan Asas HTTP-B /--use-ascii Gunakan pemindahan teks ASCII-d/-- data >Kaedah HTTP POST untuk menghantar data--data-ascii                                                                                  ;                                                         🎜>--disable-epsv                                                                                🎜> ialah data rawak ( SSL) Tetapkan laluan soket EGD --tcp-nodelay Gunakan pilihan TCP_NODELAY -E/--cert     >Jenis sijil DER/PEM/ENG) (SSL)--kekunci --jenis-kunci >Jenis fail kunci peribadi (DER/PEM/ENG) (SSL)- -lulus    🎜>Enjin penyulitan yang digunakan (SSL "--senarai enjin" untuk senarai--cacert                                                                                                                                                                                                                                                                                                                                                                                            Memerlukan pengembalian untuk dimampatkan (menggunakan deflate atau gzip)--krb4                                                                                                 🎜>Benarkan tapak SSL tanpa sijil-K/--config > > -L/-List-only Senaraikan nama fail dalam direktori FTP - Hadkan -raate & lt; kadar & gt; Tetapkan kelajuan pemindahan--local-port m/--masa maksimum Bilangan direktori untuk membaca -max-filesize & lt; bytes & gt; 🎜>--netrc-optional Gunakan .netrc atau URL untuk menggantikan -n--ntlm                                                        🎜>Gunakan pengesahan NTLM HTTP-N/--tiada penimbal                                                                            -proxy-basic --proxy-digest                                     Gunakan pengesahan ntlm dihidupkan proksi-R/--masa jauh                                                                                                                                                                                                      ; Apabila terdapat masalah dengan penghantaran, bilangan percubaan semula -Cuba semula-Tangguhan & LT Apabila ada masalah dengan penghantaran, tetapan adalah berat selang--cuba semula-masa-maks 🎜>Tunjukkan ralat--socks4 > Gunakan socks4 untuk proksi hos dan port yang diberikan --socks5 🎜>-t/--telnet-option     Nyahpepijat fail yang ditentukan--jejak-ascii 🎜>--masa jejak                                                                                                                                     Tetapkan nama pengguna dan kata laluan proksi Paparkan maklumat versiArahan apa yang hendak ditentukan?Masa yang diperlukan untuk melepaskan had laju.Lalai ialah 30-1/--tlsv1                                                                                                Menggunakan SSLv2 (SSL) Like-q untuk url sumber untuk pemindahan pihak ke-3 Url-3P- untuk penghantaran ketiga penghantaran pihak ketiga --3p-pengguna Gunakan nama pengguna dan kata laluan untuk penghantaran pihak ketiga-4 /--ipv4 Guna IP4-6/--ipv6     

3. Kod keluar arahan Linux curl

Berikut ialah kod ralat arahan linux curl dan mesej ralat yang sepadan, yang mungkin muncul dalam persekitaran yang keras.

-a/--lampirkan                                                                                                                                                                       
--cerna 🎜>Penggunaan EPRT atau LPRT adalah dilarang
--sifir                                          🎜>
-p/-Proxytunnel 🎜> Pilih mana-mana kaedah pengesahan proksi
Gunakan pengesahan asas pada proksi
Gunakan pengesahan digital pada proksi
-P/--ftp-port ;                                                                                                                                                   🎜>
Tetapkan URL untuk digunakan ->
-V/--version   
-X/--minta
-y /--speed-time      
-Y/--had-kelajuan        Hentikan had laju penghantaran, masa kelajuan' saat
-z/--time-cond                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
Guna IP6
退出码 错误描述
1 Protokol tidak disokong. Binaan curl ini tidak mempunyai sokongan untuk protokol ini.
2 Gagal dimulakan.
3 URL salah bentuk. Sintaks tidak betul.
5 Tidak dapat menyelesaikan proksi. Hos proksi yang diberikan tidak dapat diselesaikan.
6 Tidak dapat menyelesaikan hos. Hos jauh yang diberikan tidak diselesaikan.
7 Gagal menyambung ke hos.
8 Balasan pelayan pelik FTP. Pelayan menghantar data curl tidak dapat menghuraikan.
9 Akses FTP ditolak. Pelayan menafikan log masuk atau menafikan akses kepada sumber atau direktori tertentu yang anda ingin capai. Selalunya anda cuba menukar kepada direktori yang tidak wujud pada pelayan.
11 Balasan PASS pelik FTP. Curl tidak dapat menghuraikan balasan yang dihantar kepada permintaan PASS.
13 FTP balasan PASV pelik, Curl tidak dapat menghuraikan balasan yang dihantar kepada permintaan PASV.
14 Format 227 pelik FTP. Curl tidak dapat menghuraikan 227 baris yang dihantar pelayan.
15 FTP tidak boleh mendapatkan hos. Tidak dapat menyelesaikan IP hos yang kami dapat dalam talian 227.
17 FTP tidak dapat menetapkan binari. Tidak dapat menukar kaedah pemindahan kepada binari.
18 Fail separa. Hanya sebahagian daripada fail telah dipindahkan.
19 FTP tidak dapat memuat turun/mengakses fail yang diberikan, arahan RETR (atau yang serupa) gagal.
21 Ralat petikan FTP. Arahan petikan mengembalikan ralat daripada pelayan.
22 Halaman HTTP tidak diambil. Url yang diminta tidak ditemui atau mengembalikan ralat lain dengan kod ralat HTTP ialah 400 atau lebih tinggi. Kod pemulangan ini hanya muncul jika -f/--fail digunakan.
23 Ralat tulis. Curl tidak dapat menulis data ke sistem fail setempat atau yang serupa.
25 FTP tidak dapat STOR fail. Pelayan menafikan operasi STOR, digunakan untuk muat naik FTP.
26 Ralat baca. Pelbagai masalah membaca.
27 Habis ingatan. Permintaan peruntukan memori gagal.
28 Tamat masa operasi. Tempoh tamat masa yang ditentukan telah dicapai mengikut syarat.
30 FTP PORT gagal. Arahan PORT gagal. Bukan semua pelayan FTP menyokong arahan PORT, cuba lakukan pemindahan menggunakan PASV!
31 FTP tidak dapat menggunakan REST. Perintah REST gagal. Perintah ini digunakan untuk pemindahan FTP yang disambung semula.
33 Ralat julat HTTP. Julat "arahan" tidak berfungsi.
34 Ralat siaran HTTP. Ralat penjanaan pasca permintaan dalaman.
35 Ralat sambungan SSL. Jabat tangan SSL gagal.
36 Sambungan muat turun FTP buruk. Tidak dapat meneruskan muat turun yang dibatalkan sebelum ini.
37 FAIL tidak dapat membaca fail. Gagal membuka fail. Kebenaran?
38 LDAP tidak boleh mengikat. Operasi pengikatan LDAP gagal.
39 Carian LDAP gagal.
41 Fungsi tidak ditemui . Fungsi LDAP yang diperlukan tidak ditemui.
42 Dibatalkan melalui panggilan balik. Aplikasi memberitahu curl untuk membatalkan operasi.
43 Ralat dalaman. Satu fungsi telah dipanggil dengan parameter buruk.
45 Ralat antara muka. Antara muka keluar yang ditentukan tidak boleh digunakan.
47 Terlalu banyak ubah hala. Apabila mengikuti ubah hala, curl mencapai jumlah maksimum.
48 Pilihan TELNET tidak diketahui ditentukan.
49 Pilihan telnet cacat.
51 Sijil SSL rakan sebaya atau cap jari SSH MD5 tidak ok.
52 Pelayan tidak membalas apa-apa, yang di sini dianggap ralat.
53 Enjin kripto SSL tidak ditemui.
54 Tidak boleh menetapkan enjin kripto SSL sebagai lalai.
55 Gagal menghantar data rangkaian.
56 Kegagalan dalam menerima data rangkaian.
58 Masalah dengan sijil tempatan.
59 Tidak dapat menggunakan sifir SSL yang ditentukan.
60 Sijil rakan sebaya tidak boleh disahkan dengan sijil CA yang diketahui.
61 Pengekodan pemindahan tidak diiktiraf.
62 URL LDAP tidak sah.
63 Melebihi saiz fail maksimum.
64 Tahap SSL FTP yang diminta gagal.
65 Menghantar data memerlukan gulung semula yang gagal.
66 Gagal untuk memulakan SSL Enjin.
67 Nama pengguna, kata laluan atau yang serupa tidak diterima dan curl gagal log masuk.
68 Fail tidak ditemui pada pelayan TFTP.
69 Masalah kebenaran pada pelayan TFTP.
70 Kehabisan ruang cakera pada pelayan TFTP.
71 Pengendalian TFTP yang tidak sah.
72 ID pemindahan TFTP tidak diketahui.
73 Fail sudah wujud (TFTP).
74 Tiada pengguna sedemikian (TFTP).
75 Penukaran aksara gagal.
76 Fungsi penukaran aksara diperlukan.
77 Masalah membaca sijil SSL CA (laluan? hak akses? ).
78 Sumber yang dirujuk dalam URL tidak wujud.
79 Ralat yang tidak ditentukan berlaku semasa sesi SSH.
80 Gagal menutup sambungan SSL.
82 Tidak dapat memuatkan fail CRL, hilang atau format yang salah (ditambah dalam 7.19.0).
83 Semakan pengeluar gagal (ditambah dalam 7.19. 0).
XX Lebih banyak kod ralat akan muncul di sini dalam keluaran akan datang. Yang sedia ada tidak akan pernah berubah.

4. Penggunaan Biasa

1. >1.1. Halaman muat turun: curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#Sila ambil perhatian bahawa url selepas -O mestilah khusus untuk fail tertentu, jika tidak ia akan ditangkap Tidak turun

curl -O http://www.linux.com/dodo1.JPG

1.2: Muat turun gelung
Kadangkala nama bahagian sebelumnya bagi gambar yang dimuat turun mungkin sama Tulang belakang ekor terakhir mempunyai nama yang berbeza. Ini akan menyimpan semua dodo1, dodo2, dodo3, dodo4 dan dodo5
curl -O http://www.linux.com/dodo[1-5].JPG

1.3: Muat turun berat Fail bernama
dalam hello/dodo1.JPG akan menjadi hello_dodo1.JPG selepas dimuat turun, dan seterusnya untuk fail lain, dengan itu berkesan mengelakkan fail ditimpa
curl -o #1_#2.JPG http: //www. linux.com/{hello,bb}/dodo[1-5].JPG

Memandangkan nama fail dalam hello dan bb yang dimuat turun semuanya dodo1, dodo2, dodo3, dodo4, dodo5. Oleh itu, muat turun kedua akan menimpa muat turun pertama, jadi fail itu perlu dinamakan semula.
curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

1.4: Muat turun dalam ketulan (pilihan: -r)

curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1. JPG

curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG

cat dodo1_part* > dodo1.JPG #Dengan cara ini anda boleh melihat kandungan dodo1.JPG

1.5: Muat turun fail melalui ftp (pilihan: -u)
curl boleh memuat turun fail melalui ftp curl menyediakan dua sintaks untuk memuat turun daripada ftp
curl -O -u Nama pengguna: Kata laluan ftp :/. /www.linux.com/dodo1.JPG

curl -O ftp://username:password@www.linux.com/dodo1.JPG


1.6: Muat turun, paparkan bar kemajuan ( pilihan: - #) atau jangan paparkan bar kemajuan (pilihan: -s)
curl -# -O http://www.linux.com/dodo1.JPG
curl -s -O http://www . linux.com/dodo1.JPG

1.7 Muat turun, sambung semula pada titik putus (-C )
Sambung semula pada titik putus dan teruskan memuat turun/muat naik dari kedudukan yang ditentukan dalam pengepala fail ialah kedudukan permulaan penghantaran sambung semula Jika nilai offset ialah "-", curl akan secara automatik mengenal pasti kedudukan permulaan dalam fail dan memulakan penghantaran
curl -# -o centos6.8.iso -C - http://; cermin. aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-minimal.iso

curl -C -O http://www.linux.com/dodo1.JPG




2. Muat naik fail (pilihan:-T)

curl -T dodo1.JPG -u Nama pengguna: Kata laluan ftp://www.linux.com/img /

3. Halaman sumber palsu |. akses supaya untuk mengawal akses. Sebagai contoh: anda mula-mula melawat halaman utama, dan kemudian melawat halaman e-mel pada halaman utama Alamat perujuk alamat e-mel di sini ialah alamat halaman selepas berjaya mengakses halaman utama Jika pelayan mendapati bahawa alamat perujuk halaman e-mel itu bukan alamat halaman utama, ia akan menentukan itu sambungan yang dicuri

#Ini akan membuatkan pelayan berfikir bahawa anda mengklik pautan dari www.linux.com

curl -e "www.linux.com" http://mail.linux. com #Beritahu Aie E bahawa saya dari Baidu curl -e http://baidu.com http://aiezu.com

4. Peranti proksi palsu (pelayar tiruan)



Sesetengah tapak web memerlukan penggunaan penyemak imbas tertentu untuk mengaksesnya, dan ada juga yang memerlukan penggunaan versi tertentu. Pilihan terbina dalam Curl: -A membolehkan kami menentukan penyemak imbas untuk mengakses tapak web

curl -A "Mozilla/4.0 (serasi; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

#Beritahu saya menyayangi keluarga E, saya adalah labah-labah perangkak GOOGLE (sebenarnya saya adalah arahan curl) curl -A "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com /bot.html)" http ://aiezu.com #Beritahu Aiezu, saya menggunakan penyemak imbas terbina dalam WeChat curl -A "Mozilla/5.0 AppleWebKit/600 Mobile MicroMessenger/6.0" http:// aiezu.com



5. Tetapkan permintaan http



5.1. --head)

curl -H "Cache-Control:no-cache" http://aiezu.com

5.2 Nyatakan pelayan proksi dan portnya (pilihan::-x) #Banyak kali anda perlu mengakses Internet Apabila pelayan proksi digunakan (contohnya, apabila menggunakan pelayan proksi untuk mengakses Internet atau apabila alamat IP disekat oleh orang lain kerana menggunakan curl pada tapak web orang lain), untungnya curl menyokong tetapan proksi dengan menggunakan pilihan terbina dalam: -x curl -x 192.168:1080 http://www.linux.com


6 pengepala


6.1. Lihat pengepala respons http (pilihan:-I)
# Lihat rupa pengepala http tapak ini
curl -I http://aiezu.com
Output:
HTTP/1.1 200 OK
Tarikh: Jum, 25 Nov 2016 16:45:49 GMT
Pelayan: Apache
Set-Cookie: rox__Session=abdrt8vesprhnpc3f63p1df7j4; 1981 08:52:00 GMT
Kawalan Cache: tiada kedai, tiada cache, mesti sah semula, pasca semak=0, pra-semak=0
Pragma: tiada cache
Variasikan : Accept-Encoding
Content-Type: text/html; charset=utf-8

6.2. Simpan maklumat pengepala dalam respons http (pilihan:-D)
curl -D cookied http://www.linux.com
Selepas pelaksanaan, maklumat kuki akan disimpan dalam cookied.txt
Nota: Kuki yang dijana oleh -c (huruf kecil) adalah berbeza daripada kuki dalam -D.

7. Hantar data borang

curl -F "pic=@logo.png" -F "site=aiezu" http:/ /aiezu.com/

8 kuki

8.1.1.1 untuk merekod maklumat sesi. Untuk penyemak imbas seperti chrome, maklumat kuki boleh diproses dengan mudah, tetapi kuki juga boleh diproses dengan mudah dengan menambahkan parameter yang berkaitan dalam curl

curl -b "domain=aiezu.com" http://aiezu.com
#Many tapak web memantau maklumat kuki anda untuk menentukan sama ada anda melawat tapak web mereka mengikut peraturan, jadi kami perlu menggunakan maklumat kuki yang disimpan. Pilihan terbina dalam: -b
curl -b cookiec.txt http://www.linux.com

8.2 Simpan maklumat kuki dalam respons http (pilihan:-c)

selepas pelaksanaan Maklumat kuki dalam respons http disimpan dalam cookiec.txt

curl -c cookiec.txt http://www.linux.com

9. Uji satu URL 9.1 Uji sama ada URL boleh dicapai

curl -v http://www.linux.com


9.2 halaman (pilihan :-w [format])

curl -o /dev/null -s -w %{http_code} www.linux.com


10 halaman web (> ;>)2.1: Simpan menggunakan fungsi ubah hala linux

curl http://www.linux.com >> 🎜>


11 Kaedah permintaan

curl -i -v -H '' -X POST -d '' http:www.test.com /a/b Antaranya, -X POST -d, -X GET -d, -X PUT -d masing-masing bersamaan dengan -F, -G -d, -P

Ambil jawatan permintaan sebagai contoh:
11.1, -X POST -d

(11.1.1), POST application/x-www-form-urlencoded

application/x-www-form-urlencoded ialah lalai
curl -X POST - d "param1=value1¶m2=value2" http://localhost:3000/data
Bersamaan dengan
curl -H "Content-Type:application/x-www-form-urlencoded" -X POST -d " param1=value1¶m2=value2" http://localhost:3000/data
Menggunakan fail data
curl -X POST -d "@data.txt" http://localhost:3000/ data
di mana data Kandungan .txt adalah seperti berikut: param1=value1¶m2=value2

(11.1.2), POST application/json
curl -H "Content-Type:application/json " -X POST -d '{"key1 ":"value1","key2":"value2"}' http://localhost:3000/data

Jika menggunakan fail data:

curl -X POST - d "@data.json" http:// /localhost:3000/data
Kandungan data.json adalah seperti berikut: {"key1":"value1","key2":"value2"}
Satu lagi contoh:
curl -H "Content-type:application/json" -X POST -d "{"app_key":"$appKey","time_stamp":"$time"}" http://www.test .com.cn/a/b

11.2, -F
curl -v -H "token: 222" -F "file=@/Users/funglio/Downloads/401.png" localhost: 8000/api/v1/upimg

curl -f http://www.linux.com/error

11.3, contoh lain

(11.3.1),

curl -X POST "http ://www.test.com/e/f" -H "Content-Type:application/x-www-form-urlencoded;charset=UTF-8"

-d "a=b"

- d "c=d"

-d "e=f"
-d "g=h"

(11.3.2), ralat : curl -i -G -d "a= b#1&c=d" http://www.test.com/e/f
Betul: Jika nilai parameter ialah simbol khas, gunakan urlencode untuk menukarnya

curl -i -G -d "a=b %231&c=d" http://www.test.com/e/f



Penyahpepijatan

curl -v可以显示一次http通信的整个过程,包括端口连接和http request头信息。
如果觉得还不够,那么下面的命令可以查看更详细的通信过程:
curl --trace output.txt www.baidu.com 或者 curl --trace-ascii output.txt www.baidu.com 
运行后,请打开output.txt文件查看。
curl --trace output.txt  http://www.baidu.com
curl --trace-ascii output2.txt  http://www.baidu.com
curl --trace output3.txt --trace-time http://www.baidu.com
curl --trace-ascii output4.txt --trace-time http://www.baidu.com 

举例:有需求每5分钟请求一次http://www.test.com/a/b生成一个日志文件。希望一月的日志(正确的和错误的)能写入一个日志文件
day=`date +%F`
logfile='/var/logs/www.test.com_'`date +%Y%m`'.log'
/usr/bin/echo -e "\n\n[${day}] Start request \n " >> ${logfile}
/bin/curl -v "http://www.test.com/a/b" -d "ccccc" 1>> ${logfile} 2>> ${logfile} --trace-time
/usr/bin/echo -e "\n\n[${day}] End request\n" >> ${logfile}

13、显示抓取错误

curl -f http://www.linux.com/error
Salin selepas log masuk

相关推荐:《Linux视频教程

Atas ialah kandungan terperinci apa itu linux curl. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan