什么是curl命令? curl是利用URL語(yǔ)法在命令行方式下工作的開(kāi)源文件傳輸工具。它被廣泛應(yīng)用在Unix、多種Linux發(fā)行版中,并且有DOS和Win32、Win64下的移植版本。 如何在windows下使用curl命令? 打開(kāi)dos窗口(win+R 輸入cmd 打開(kāi))輸入 curl -V 現(xiàn)在使用的Windows10都默認(rèn)已經(jīng)安裝了該工具,如果沒(méi)有可以自己百度找下教程,本文不做詳細(xì)講解 curl 訪問(wèn)百度 輸入curl www.baidu.com 常用參數(shù)如下
-a/--append 上傳文件時(shí),附加到目標(biāo)文件 -A/--user-agent
< string
> 設(shè)置用戶代理發(fā)送給服務(wù)器 - anyauth 可以使用“任何”身份驗(yàn)證方法 -b/--cookie
< name
= string/file
> cookie字符串或文件讀取位置 - basic 使用HTTP基本驗(yàn)證 -B/--use-ascii 使用ASCII /文本傳輸 -c/--cookie-jar
< file
> 操作結(jié)束后把cookie寫(xiě)入到這個(gè)文件中 -C/--continue-at
< offset
> 斷點(diǎn)續(xù)轉(zhuǎn) -d/--data
< data
> HTTP POST方式傳送數(shù)據(jù) --data-ascii
< data
> 以ascii的方式post數(shù)據(jù) --data-binary
< data
> 以二進(jìn)制的方式post數(shù)據(jù) --negotiate 使用HTTP身份驗(yàn)證 --digest 使用數(shù)字身份驗(yàn)證 --disable-eprt 禁止使用EPRT或LPRT --disable-epsv 禁止使用EPSV -D/--dump-header
< file
> 把header信息寫(xiě)入到該文件中 --egd-file
< file
> 為隨機(jī)數(shù)據(jù)
( SSL
) 設(shè)置EGD socket路徑 --tcp-nodelay 使用TCP_NODELAY選項(xiàng) -e/--referer 來(lái)源網(wǎng)址 -E/--cert
< cert
[ :passwd
] > 客戶端證書(shū)文件和密碼
( SSL
) --cert-type
< type
> 證書(shū)文件類型
( 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證書(shū)
( SSL
) --capath
< directory
> CA目錄
( made using c_rehash
) to verify peer against
( SSL
) --ciphers
< list
> SSL密碼 --compressed 要求返回是壓縮的形勢(shì)
( using deflate or gzip
) --connect-timeout
< seconds
> 設(shè)置最大請(qǐng)求時(shí)間 --create-dirs 建立本地目錄的目錄層次結(jié)構(gòu) --crlf 上傳是把LF轉(zhuǎn)變成CRLF -f/--fail 連接失敗時(shí)不顯示http錯(cuò)誤 --ftp-create-dirs 如果遠(yuǎn)程目錄不存在,創(chuàng)建遠(yuǎn)程目錄 --ftp-method
[ multicwd/nocwd/singlecwd
] 控制CWD的使用 --ftp-pasv 使用 PASV/EPSV 代替端口 --ftp-skip-pasv-ip 使用PASV的時(shí)候,忽略該IP地址 --ftp-ssl 嘗試用 SSL/TLS 來(lái)進(jìn)行ftp數(shù)據(jù)傳輸 --ftp-ssl-reqd 要求用 SSL/TLS 來(lái)進(jìn)行ftp數(shù)據(jù)傳輸 -F/--form
< name
= content
> 模擬http表單提交數(shù)據(jù) -form-string
< name
= string
> 模擬http表單提交數(shù)據(jù) -g/--globoff 禁用網(wǎng)址序列和范圍使用
{ } 和
[ ] -G/--get 以get的方式來(lái)發(fā)送數(shù)據(jù) -h/--help 幫助 -H/--header
< line
> 自定義頭信息傳遞給服務(wù)器 --ignore-content-length 忽略的HTTP頭信息的長(zhǎng)度 -i/--include 輸出時(shí)包括protocol頭信息 -I/--head 只顯示文檔信息 從文件中讀取-j/--junk-session-cookies忽略會(huì)話Cookie - 界面
< interface
> 指定網(wǎng)絡(luò)接口/地址使用 - krb4
< 級(jí)別
> 啟用與指定的安全級(jí)別krb4 -j/--junk-session-cookies 讀取文件進(jìn)忽略session cookie --interface
< interface
> 使用指定網(wǎng)絡(luò)接口/地址 --krb4
< level
> 使用指定安全級(jí)別的krb4 -k/--insecure 允許不使用證書(shū)到SSL站點(diǎn) -K/--config 指定的配置文件讀取 -l/--list-only 列出ftp目錄下的文件名稱 --limit-rate
< rate
> 設(shè)置傳輸速度 --local-port
< NUM
> 強(qiáng)制使用本地端口號(hào) -m/--max-time
< seconds
> 設(shè)置最大傳輸時(shí)間 --max-redirs
< num
> 設(shè)置最大讀取的目錄數(shù) --max-filesize
< bytes
> 設(shè)置最大下載的文件總量 -M/--manual 顯示全手動(dòng) -n/--netrc 從netrc文件中讀取用戶名和密碼 --netrc-optional 使用 .netrc 或者 URL來(lái)覆蓋-n --ntlm 使用 HTTP NTLM 身份驗(yàn)證 -N/--no-buffer 禁用緩沖輸出 -o/--output 把輸出寫(xiě)到該文件中 -O/--remote-name 把輸出寫(xiě)到該文件中,保留遠(yuǎn)程文件的文件名 -p/--proxytunnel 使用HTTP代理 --proxy-anyauth 選擇任一代理身份驗(yàn)證方法 --proxy-basic 在代理上使用基本身份驗(yàn)證 --proxy-digest 在代理上使用數(shù)字身份驗(yàn)證 --proxy-ntlm 在代理上使用ntlm身份驗(yàn)證 -P/--ftp-port
< address
> 使用端口地址,而不是使用PASV -Q/--quote
< cmd
> 文件傳輸前,發(fā)送命令到服務(wù)器 -r/--range
< range
> 檢索來(lái)自HTTP/1.1或FTP服務(wù)器字節(jié)范圍 --range-file 讀取(SSL)的隨機(jī)文件 -R/--remote-time 在本地生成文件時(shí),保留遠(yuǎn)程文件時(shí)間 --retry
< num
> 傳輸出現(xiàn)問(wèn)題時(shí),重試的次數(shù) --retry-delay
< seconds
> 傳輸出現(xiàn)問(wèn)題時(shí),設(shè)置重試間隔時(shí)間 --retry-max-time
< seconds
> 傳輸出現(xiàn)問(wèn)題時(shí),設(shè)置最大重試時(shí)間 -s/--silent靜音模式。不輸出任何東西 -S/--show-error 顯示錯(cuò)誤 --socks4
< host
[ :port
] > 用socks4代理給定主機(jī)和端口 --socks5
< host
[ :port
] > 用socks5代理給定主機(jī)和端口 --stderr
< file
> -t/--telnet-option
< OPT
= val
> Telnet選項(xiàng)設(shè)置 --trace
< file
> 對(duì)指定文件進(jìn)行debug --trace-ascii
< file
> Like --跟蹤但沒(méi)有hex輸出 --trace-time 跟蹤/詳細(xì)輸出時(shí),添加時(shí)間戳 -T/--upload-file
< file
> 上傳文件 --url
< URL
> Spet URL to work with -u/--user
< user
[ :password
] > 設(shè)置服務(wù)器的用戶和密碼 -U/--proxy-user
< user
[ :password
] > 設(shè)置代理用戶名和密碼 -v/--verbose -V/--version 顯示版本信息 -w/--write-out
[ format
] 什么輸出完成后 -x/--proxy
< host
[ :port
] > 在給定的端口上使用HTTP代理 -X/--request
< command
> 指定什么命令 -y/--speed-time 放棄限速所要的時(shí)間。默認(rèn)為30 -Y/--speed-limit 停止傳輸速度的限制,速度時(shí)間'秒 -z/--time-cond 傳送時(shí)間設(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,進(jìn)行第三方傳送 --3p-user 使用用戶名和密碼,進(jìn)行第三方傳送 -4/--ipv4 使用IP4 -6/--ipv6 使用IP6 -
curl 命令可以進(jìn)行一些常規(guī)的get/post方法訪問(wèn) 例如 GET請(qǐng)求發(fā)送
curl http://127.0.0.1:8080/login?user
= admin
& passwd
= 12345678
POST 請(qǐng)求發(fā)送
-d 參數(shù)含義: HTTP POST方式傳送數(shù)據(jù) 這種方法是參數(shù)直接在header里面的
curl -d
"user=admin&passwd=12345678" http://127.0.0.1:8080/login
如需將輸出指定到文件可以通過(guò)重定向進(jìn)行操作.這種方法json數(shù)據(jù)直接在body里面的
curl -H
"Content-Type:application/json" -X POST --data
'{\"user\": \"admin\",\"passwd\":\"12345678\"}' http://localhost:8080/login
下午實(shí)踐操作的時(shí)候,系統(tǒng)報(bào)了這個(gè)問(wèn)題
2021-05-24 17:45:54.668
|| http-nio-8080-exec-9
|| ERROR
|| http-nio-8080-exec-9raceId
|| com.gwh.product.ls.service.exceptionHandler.SelfCommonExceptionHandler
|| 請(qǐng)求數(shù)據(jù)解析錯(cuò)誤, url:/product/endorse, exception: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character
( 'b' ( code 98
)) : was expecting double-quote to start field name
; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character
( 'b' ( code 98
)) : was expecting double-quote to start field nameat
[ Source:
( PushbackInputStream
) ; line: 1, column: 3
]
黑窗口提示:
C:\Users\gwh
> curl -H
"Content-Type: application/json" -X POST -d
"{" body
":{" data
":" a3acd3224faf8073e2ce37d0aec0948e865f50e07f650b6c229eba3a377c6260417851e2afcf98bd0522a078d52f29897e8a3fe371806f65d860603955f80fd8e2542bba9cc053d23e3e87f7dab4b1870711725db2d6a6867e8df5a31932dee1c66855c108f171787a460d317021bfce7df8666b7886974b0fa15d8f741ae446e824a79f6c993efc6819fb738e891a97773e0126a1bdf05bf04f07afaad26e4a4b3f00e416bd44c37e89bf4700b761cccd914d3867485761494be4c098dd732a8770705d54906ceda8ff1c28e8f010bdf99e403ba0d9862be02fe3ca5abdce3b
"," sign
":" 5aafc6ef0344d3731e4972e57f6b549a
"}," header
":{" comId
":" JXT
"," sendTime
":" 2021-05-24 16:55:59
"," uuid
":" 0f64bf2c-8f3c-40c5-9aab-f7b8c971bc06
"," version
":" 3
"}}" http://localhost:8080/product/endorse
curl:
( 3
) [ globbing
] unmatched close brace/bracket
in column 61
{ "resultCode" : "599997" ,
"resultMsg" : "參數(shù)缺失或非法" ,
"body" :null,
"version" : "1.0" ,
"timeStamp" :1621849702796
}
提示的示json解析問(wèn)題,我把參數(shù)粘貼到j(luò)son.con格式化里面反解析了一下,沒(méi)有問(wèn)題,但是一訪問(wèn)就提示解析問(wèn)題
解決 我把參數(shù)都加了反斜杠,轉(zhuǎn)義符以后再調(diào)用就沒(méi)問(wèn)題了
C:\Users\ext.gwh
> curl -H
"Content-Type: application/json" -X POST -d
"{\"body\":{\"data\":\"a3acd3224faf8073e2ce37d0aec0948e865f50e07f650b6c229eba3a377c6260417851e2afcf98bd0522a078d52f29897e8a3fe371806f65d860603955f80fd8e2542bba9cc053d23e3e87f7dab4b1870711725db2d6a6867e8df5a31932dee1c66855c108f171787a460d317021bfce7df8666b7886974b0fa15d8f741ae446e824a79f6c993efc6819fb738e891a97773e0126a1bdf05bf04f07afaad26e4a4b3f00e416bd44c37e89bf4700b761cccd914d3867485761494be4c098dd732a8770705d54906ceda8ff1c28e8f010bdf99e403ba0d9862be02fe3ca5abdce3b\",\"sign\":\"5aafc6ef0344d3731e4972e57f6b549a\"},\"header\":{\"comId\":\"JXT\",\"sendTime\":\"2021-05-24 16:55:59\",\"uuid\":\"0f64bf2c-8f3c-40c5-9aab-f7b8c971bc06\",\"version\":\"3\"}}" http://localhost:8080/product/endorse
{ "header" :
{ "version" : "1.0" ,
"uuid" : "0f64bf2c-8f3c-40c5-9aab-f7b8c971bc06" ,
"comId" : "JXT" ,
"sendTime" : "2021-05-24 16:55:59" ,
"responseTime" :null,
"responseCode" : "500302" ,
"responseInfo" : "無(wú)承保記錄" } ,
"body" :null
}
總結(jié)
以上是生活随笔 為你收集整理的windos下 curl命令使用 的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。