shell--curl 命令詳解

接口模擬

<?php
#test.php 
#綁定host: www.wolf.com

//curl 相關測試
session_start();
$n = isset($_GET['n']) ? intval($_GET['n']) : 1;
echo $n, PHP_EOL;
empty($_COOKIE) OR $output[] = 'COOKIE:'.print_r($_COOKIE, 1);
empty($_POST) OR $output[] = 'POST:'.print_r($_POST, 1);
array_walk($_SERVER, function (&$v, $k){
    strpos($k, 'HTTP_CUSTOM') === 0 OR $v = '';
});
$output[] = 'CUSTOM_HEADER:'.print_r(array_filter($_SERVER), 1);
setCookie('cookie_jar', rand(100,1000), time() + 600);
echo implode(PHP_EOL, $output), file_get_contents('php://input');

url

    url 支持多個與基本的正則,見下示例php

curl http://www.wolf.com/work/test.php?n=[1-10]# n=1,n=2...n=10
curl http://www.wolf.com/work/test.php?n=[1-10:3] # 設定步長爲3,n=1,n=4...
curl http://www.wolf.com/work/test.php?n={1,3}# n=1,n=3

#結合參數-0使用能夠獲取
curl http://{chdy,www}.wolf.com/work/test.php?n=[1,10] -o /tmp/_#1/_#2.log

Request 

    請求構造,諸如經常使用header ,cookie ,請求方式,長鏈接、超時控制、重定向、緩存控制緩存

#######################
  # -H  --header       設定單個header,能夠用多個。值爲空的,結尾得用分號  -H "name;" 
  # -A  --user-agent   後跟字符串
  # -e  --referer      Referer URL
#######################
curl -H "custom-name:chdy" -A "Mozilla/chorm5.6" -e "www.baidu.com"  -v http://www.wolf.com/work/test.php

#######################
  # -c  --cookie-jar   將服務端響應的cookie 寫入到文件
  # -b  --cookie      string(多個用分號間隔)或 cookie格式的文件  每一個類型只有一個生效
#######################
curl -c /tmp/wolf.jar http://www.wolf.com/work/test.php
curl -b "ca=1;cb=2" -b /tmp//tmp/wolf.jar http://www.wolf.com/work/test.php

#######################
  # -d  --data        http post(x-www-form)如 pa=1&pb=2, -G get 方式請求
  # --data-binary  --data-urlencode  --data-ascii 用來傳遞原生的數據
  # -m  --max-time    最大執行秒數
  # -L  --location    自動跟蹤重定向
  # -K  --config      加載配置文件,不用再選項中設定了
  # --keepalive-time seconds    長鏈接秒數
  # connect-timeout seconds     最大鏈接時長
#######################
curl -d "pa=1&pb=2" http://www.wolf.com/work/test.php

Response

   響應構造,諸如保存結果,只保存響應頭,定義輸出內容bash

#######################
  # -D  --dump-header file   將響應頭保存到指定文件
  # -I  --head               只輸出header響應頭
  # -i  --include            輸出內容中包含header響應頭
  # -N  --no-buffer          禁用緩存
  # -o  --output file        重定向輸出內容到文件
#######################
curl -N -I http://www.wolf.com/work/test.php

Debug

    是否靜默輸出、打開調試模式cookie

#######################
  # -s  --silent      不輸出任何內容
  # -v  --verbose     輸出請求和響應的詳細信息
#######################
curl -v http://www.wolf.com/work/test.php
相關文章
相關標籤/搜索