curl用法詳解

前言

昨天現場的瀏覽器崩潰了,樓主苦逼,就臨時用了curl測試了下圖片請求接口。今天總結下。算法

一.what?

curl is a tool to transfer data from or to a server瀏覽器

curl是用在命令行和腳本進行傳輸數據到服務器或者從服務器傳輸數據的工具。安全

二.特性

  • 支持普遍的協議,如:ftp、http、https、pop三、scp、sftp、telent等
  • 支持SSL證書,HTTP中各方法、cookies、head、authentication
  • 免費開源軟件

三.經常使用應用場景

  • 請求、驗證、測試連接
  • 支持鏈接超時、保活時間設置,支持下載上傳速率的配置,支持重試機制等
  • 測試restful接口
  • 上傳、下載文件

四.用法

語法:curl [options] [URL...]服務器

參數:restful

參數 描述
-V 顯示當前的curl版本
-# 對發送和接收進行簡單的進度bar展現
-0 強制使用HTTP 1.0協議
-1 強制使用TLS version 1.x
-4 解析域名爲ipv4地址(域名有多個ip時)
-a FTP/SFTP上傳文件時,curl將追加到目標文件,而非覆蓋
-A 設置用戶代理
-b 設置cookies
--basic 使用HTTP Basic authentication
--compressed 使用curl支持的壓縮算法請求壓縮的響應, 若是請求的響應不是壓縮的,curl拋出異常
--connect-timeout 設置鏈接超時時間
-d 用於post請求時表單提交數據, 請求類型將被設置爲:application/x-www-form-urlencoded
-e 發送"Referer Page"到服務器
-F form表單提交
-G 使用get請求發送 -d參數指定的數據
-H 增長Head頭
-i 在輸出Head頭(響應)
-I 只輸出Head頭(響應)
--interface 指定使用的網絡接口
-k 容許curl使用非安全的ssl鏈接而且傳輸數據(證書不受信)
-K 後接參數文件,參數文件中能夠定義HTTP請求的相關的內容(URL、HEAD、DATA)
--keepalive-time 設置鏈接的保活時間
-L curl自動重定向(3xx)
--limit-rate 特指最大的傳輸速率
-m 設置整個操做的容許消耗的最大時間,對於在延時網絡下的批量操做有利
--max-filesize 容許下載文件的最大大小
-N 禁用輸出流緩衝區
--no-keepalive 鏈接不保活
-o 將響應數據輸出到指定文件,後接文件參數
--retry 發生瞬時錯誤時,curl將重試執行數據傳輸
--retry-delay 延遲重試
--trace dump出輸入輸出數據至文件
-v 獲取更多輸入輸出相關的內容,對於debug很是有用
-y或者--speed-time 若是在speed-time期間,下載比speed-limit這個更慢,則下載廢止
-Y或者--speed-limit 若是在speed-time期間,下載比speed-limit這個更慢,則下載廢止

接着看下下面的使用示例:cookie

// 使用-k參數忽略證書不受信問題,-b參數指定cookies,-i參數輸出響應頭
curl -ki -b "JSESSIONID=011F1B99963D28CF91E90C99A51B1E34; _i18n_locale=zh_CN"  --compressed  https://10.33.42.149/fas/human/uploadPic.action

// -d參數指定post表單的數據, -o參數指定響應內容輸出到指定文件
curl  -kv -d "name=daniel skill=lou"   https://10.33.42.149:443/cas/login -o output

//  -1指定tls版本1.x,-H指定請求頭
curl -1 -ki -e "https://10/33.42.149" -H "X-Custom-Header:lxy"  https://10.33.42.149:443/cas/login

// -L指定自動重定向
curl -kvL http://10.33.42.149

// -K指定請求的參數配置文件
curl -kvK ex

// -e指定Referer
curl -kv -e "https://10/33.42.149" -H "X-Custom-Header:lxy"  https://10.33.42.149:443/cas/login
相關文章
相關標籤/搜索