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