日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

curl基本用法

發(fā)布時間:2024/6/21 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 curl基本用法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

curl 是一種命令行工具,作用是發(fā)出網(wǎng)絡(luò)請求,然后獲取數(shù)據(jù),顯示在"標準輸出"(stdout)上面。

以下是博主整理的一些關(guān)于curl命令的基本用法。

-A/--user-agent <string>

設(shè)置用戶代理發(fā)送給服務(wù)器

-b/--cookie <name=string/file>

cookie字符串或文件讀取位置

-c/--cookie-jar <file>

操作結(jié)束后把cookie寫入到這個文件中

-C/--continue-at <offset>

斷點續(xù)轉(zhuǎn)

-D/--dump-header <file>

把header信息寫入到該文件中

-e/--referer

來源網(wǎng)址

-f/--fail

連接失敗時不顯示http錯誤

-o/--output

把輸出寫到該文件中

-O/--remote-name

把輸出寫到該文件中,保留遠程文件的文件名

-r/--range <range>

檢索來自HTTP/1.1或FTP服務(wù)器字節(jié)范圍

-s/--silent

靜音模式。不輸出任何東西

-T/--upload-file <file>

上傳文件

-u/--user <user[:password]>

設(shè)置服務(wù)器的用戶和密碼

-w/--write-out [format]

完成后輸出什么

-x/--proxy <host[:port]>

在給定的端口上使用HTTP代理

-#/--progress-bar

進度條顯示當(dāng)前的傳送狀態(tài)

示例:

基本用法

# curl http://www.baidu.com

保存訪問的網(wǎng)頁

重定向:

# curl http://www.baidu.com >> linux.html

使用 -o 參數(shù):

# curl -o linux.html http://www.baidu.com

當(dāng)然也可以使用 -O 參數(shù)保存網(wǎng)頁中的文件(注意:一定要指定具體的文件)

# curl -O http://www.baidu.com/hello.sh

測試網(wǎng)頁返回值

# curl -o /dev/null -s -w %{http_code} www.baidu.com
顯示網(wǎng)頁返回狀態(tài)碼,200表示成功。

詳細可見博主另外一篇:https://www.cnblogs.com/liuxia912/p/10960116.html


指定proxy服務(wù)器以及其端口

curl支持通過內(nèi)置option:-x支持設(shè)置代理

# curl -x 192.168.0.1:10086 http://www.baidu.com


cookie

很多網(wǎng)站可以通過cookie來記錄session信息,curl可以通過內(nèi)置命令來保存和使用cookie信息。

保存http的response里面的cookie信息。內(nèi)置option:-c(小寫)

# curl -c cookie.txt http://www.baidu.com

執(zhí)行之后,cookie信息就被保存到
cookie.txt
文件里面了。


保存http的response里面的header信息。內(nèi)置option:-D

# curl -D cookied.txt http://www.baidu.com

同上。(注:-c與-D產(chǎn)生的cookie文件并不一致)


cookie使用

很多網(wǎng)站使用cookie去鑒定用戶訪問權(quán)限,curl通過內(nèi)置option:-b

# curl -b cookiec.txt http://www.baidu.com


模擬瀏覽器訪問

在某些特定情況下,我們需要模擬訪問的瀏覽器以及版本,使用內(nèi)置option:-A進行訪問

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

這樣服務(wù)器端就會認為是使用IE8.0去訪問的。


偽造referer(盜鏈)

很多服務(wù)器在收到請求的時候,會去check referer(源網(wǎng)頁)。curl使用內(nèi)置option:-e可以指定referer

# curl -e "www.baidu.com" http://mail.linux.com

這樣就會讓服務(wù)器其以為你是從www.baidu.com點擊某個鏈接過來的


下載文件

使用內(nèi)置option:-o下載

# curl -o tieba1.jpg http:www.baidu.com/tieba1.JPG


使用內(nèi)置option:-O下載

# curl -O http://www.baidu.com/tieba1.JPG


循環(huán)下載

# curl -O http://www.baidu.com/tieba[1-5].JPG


下載重命名

# curl -O http://www.baidu.com/{hello,bb}/tieba[1-5].JPG

由于下載的時候有名字重合的地方,會產(chǎn)生覆蓋。

# curl -o #1_#2.JPG http://www.baidu.com/{hello,bb}/tieba[1-5].JPG

這樣在hello/tieba1.JPG的文件下載下來就會變成hello_tieba1.JPG,其他文件依此類推,從而有效的避免了文件被覆蓋


分塊下載

有時候下載的東西會比較大,這個時候我們可以分段下載。使用內(nèi)置option:-r

# curl -r 0-100 -o
tieba1_part1.JPG http://www.baidu.com/tieba1.JPG

# curl -r 100-200 -o
tieba1_part2.JPG http://www.baidu.com/tieba1.JPG

# curl -r 200- -o
tieba1_part3.JPG http://www.baidu.com/tieba1.JPG

# cat tieba1_part* > tieba1.JPG</pre>


通過ftp下載

curl可以通過ftp下載文件,curl提供兩種從ftp中下載的語法

# curl -O -u 用戶名:密碼 ftp://www.baidu.com/tieba1.JPG


# curl -O ftp://用戶名:密碼@www.baidu.com/tieba1.JPG


顯示下載進度條

# curl -# -O http://www.baidu.com/tieba1.JPG


斷點續(xù)傳

如果在下載tieba1.JPG的過程中突然掉線了,可以使用以下的方式續(xù)傳

# curl -C -O http://www.baidu.com/tieba1.JPG


上傳文件

curl不僅僅可以下載文件,還可以上傳文件。通過內(nèi)置option:-T來實現(xiàn)

# curl -T tieba1.JPG -u 用戶名:密碼 ftp://www.baidu.com/img/


顯示抓取錯誤

# curl -f http://www.baidu.com/error



其他

-a/--append

上傳文件時,附加到目標文件

--anyauth

可以使用"任何"身份驗證方法

--basic

使用HTTP基本驗證

-B/--use-ascii

使用ASCII文本傳輸

-d/--data <data>

HTTP POST方式傳送數(shù)據(jù)

--data-ascii <data>

以ascii的方式post數(shù)據(jù)

--data-binary <data>

以二進制的方式post數(shù)據(jù)

--negotiate

使用HTTP身份驗證

--digest

使用數(shù)字身份驗證

--disable-eprt

禁止使用EPRT或LPRT

--disable-epsv

禁止使用EPSV

--egd-file <file>

為隨機數(shù)據(jù)(SSL)設(shè)置EGD socket路徑

--tcp-nodelay

使用TCP_NODELAY選項

-E/--cert <cert[:passwd]>

客戶端證書文件和密碼 (SSL)

--cert-type <type>

證書文件類型 (DER/PEM/ENG) (SSL)

--key <key>

私鑰文件名 (SSL)

--key-type <type>

私鑰文件類型 (DER/PEM/ENG) (SSL)

--pass <pass>

私鑰密碼 (SSL)

--engine <eng>

加密引擎使用 (SSL). "--engine list" for list

--cacert <file>

CA證書 (SSL)

--capath <directory>

CA目 (made using c_rehash) to verify peer against (SSL)

--ciphers <list>

SSL密碼

--compressed

要求返回是壓縮的形式

--connect-timeout <seconds>

設(shè)置最大請求時間

--create-dirs

建立本地目錄的目錄層次結(jié)構(gòu)

--crlf

上傳是把LF轉(zhuǎn)變成CRLF

--ftp-create-dirs

如果遠程目錄不存在,創(chuàng)建遠程目錄

--ftp-method [multicwd/nocwd/singlecwd]

控制CWD的使用

--ftp-pasv

使用 PASV/EPSV 代替端口

--ftp-skip-pasv-ip

使用PASV的時候,忽略該IP地址

--ftp-ssl

嘗試用 SSL/TLS 來進行ftp數(shù)據(jù)傳輸

--ftp-ssl-reqd

要求用 SSL/TLS 來進行ftp數(shù)據(jù)傳輸

-F/--form <name=content>

模擬http表單提交數(shù)據(jù)

-form-string <name=string>

模擬http表單提交數(shù)據(jù)

-g/--globoff

禁用網(wǎng)址序列和范圍使用{}和[]

-G/--get

以get的方式來發(fā)送數(shù)據(jù)

-h/--help

幫助

-H/--header <line>

自定義頭信息傳遞給服務(wù)器

--ignore-content-length

忽略的HTTP頭信息的長度

-i/--include

輸出時包括protocol頭信息

-I/--head

只顯示文檔信息

-j/--junk-session-cookies

讀取文件時忽略session cookie

--interface <interface>

使用指定網(wǎng)絡(luò)接口/地址

--krb4 <level>

使用指定安全級別的krb4

-k/--insecure

允許不使用證書到SSL站點

-K/--config

指定的配置文件讀取

-l/--list-only

列出ftp目錄下的文件名稱

--limit-rate <rate>

設(shè)置傳輸速度

--local-port<NUM>

強制使用本地端口號

-m/--max-time <seconds>

設(shè)置最大傳輸時間

--max-redirs <num>

設(shè)置最大讀取的目錄數(shù)

--max-filesize <bytes>

設(shè)置最大下載的文件總量

-M/--manual

顯示全手動

-n/--netrc

從netrc文件中讀取用戶名和密碼

--netrc-optional

使用 .netrc 或者 URL來覆蓋-n

--ntlm

使用 HTTP NTLM 身份驗證

-N/--no-buffer

禁用緩沖輸出

-p/--proxytunnel

使用HTTP代理

--proxy-anyauth

選擇任一代理身份驗證方法

--proxy-basic

在代理上使用基本身份驗證

--proxy-digest

在代理上使用數(shù)字身份驗證

--proxy-ntlm

在代理上使用ntlm身份驗證

-P/--ftp-port <address>

使用端口地址,而不是使用PASV

-Q/--quote <cmd>

文件傳輸前,發(fā)送命令到服務(wù)器

--range-file

讀取(SSL)的隨機文件

-R/--remote-time

在本地生成文件時,保留遠程文件時間

--retry <num>

傳輸出現(xiàn)問題時,重試的次數(shù)

--retry-delay <seconds>

傳輸出現(xiàn)問題時,設(shè)置重試間隔時間

--retry-max-time <seconds>

傳輸出現(xiàn)問題時,設(shè)置最大重試時間

-S/--show-error

顯示錯誤

--socks4 <host[:port]>

用socks4代理給定主機和端口

--socks5 <host[:port]>

用socks5代理給定主機和端口

-t/--telnet-option <OPT=val>

Telnet選項設(shè)置

--trace <file>

對指定文件進行debug

--trace-ascii <file>

Like --跟蹤但沒有hex輸出

--trace-time

跟蹤/詳細輸出時,添加時間戳

--url <URL>

Spet URL to work with

-U/--proxy-user <user[:password]>

設(shè)置代理用戶名和密碼

-V/--version

顯示版本信息

-X/--request <command>

指定什么命令

-y/--speed-time

放棄限速所要的時間。默認為30

-Y/--speed-limit

停止傳輸速度的限制,速度時間'秒

-z/--time-cond

傳送時間設(shè)置

-0/--http1.0

使用HTTP 1.0

-1/--tlsv1

使用TLSv1(SSL)

-2/--sslv2

使用SSLv2的(SSL)

-3/--sslv3

使用的SSLv3(SSL)

--3p-quote

like -Q for the source URL for 3rd party transfer

--3p-url

使用url,進行第三方傳送

--3p-user

使用用戶名和密碼,進行第三方傳送

-4/--ipv4

使用IP4

-6/--ipv6

使用IP6


總結(jié)

以上是生活随笔為你收集整理的curl基本用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。