前言:经常需要用到curl命令在线上机器中去测试接口,尤其是一些内外网接口、判断线上接口信息等,需要用到curl命令直接测试页面或接口返回值,下面是我常用的curl命令参数及作用:
1、curl url
作用:获取页面内容或接口响应
示例:以爱奇艺视频页领取优惠券为例:curl https://act.vip.iqiyi.com/api/process.action?cb=cb_1540200657317\&cid=afbe8fd3d73448c9\&interfaceCode=b5018a28d5f8609f\&pid=92b01a8207f5c404
(注意:上述curl的路径中使用到了\转义符号,当url中包含多个参数时候,需要使用\转义符)
返回值:
var cb_1540200657317={"code":"Q00304","data":{},"msg":"用户未登录"}
2、curl -I url
作用:获取请求页面或接口的请求头信息
返回值:
[root@simonsfan code]# curl -I https://act.vip.iqiyi.com/api/process.action?cb=cb_1540200657317\&cid=afbe8fd3d73448c9\&interfaceCode=b5018a28d5f8609f\&pid=92b01a8207f5c404
HTTP/1.1 200
Server: nginx
Date: Mon, 22 Oct 2018 09:45:52 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 72
Connection: keep-alive
Accept-Charset: big5, big5-hkscs, cesu-8, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound_text, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1166, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp
Access-Control-Allow-Credentials: true
X-Frame-Options: SAMEORIGIN
上述命令只会返回请求头信息,而不包含响应内容,可以使用 -l 参数来返回请求头和响应信息:
[root@simonsfan code]# curl -i https://act.vip.iqiyi.com/api/process.action?cb=cb_1540200657317\&cid=afbe8fd3d73448c9\&interfaceCode=b5018a28d5f8609f\&pid=92b01a8207f5c404
HTTP/1.1 200
Server: nginx
Date: Mon, 22 Oct 2018 09:47:35 GMT
Content-Type: text/plain;charset=UTF-8
Content-Length: 72
Connection: keep-alive
Accept-Charset: big5, big5-hkscs, cesu-8, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound_text, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1166, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp
Access-Control-Allow-Credentials: true
X-Frame-Options: SAMEORIGIN
var cb_1540200657317={"code":"Q00304","data":{},"msg":"用户未登录"}
3、curl -d "params" url
作用:使用-d发送带参数的请求(默认是post方式提交)
示例:curl -d "cb=cb_1540200657317&cid=afbe8fd3d73448c9&interfaceCode=b5018a28d5f8609f&pid=92b01a8207f5c404" https://act.vip.iqiyi.com/api/process.action
返回:
var cb_1540200657317={"code":"Q00304","data":{},"msg":"用户未登录"}
作用和上面说的第一点一致,你也可以使用 -X GET 参数来指定GET方式提交请求:curl -d "cb=cb_1540200657317&cid=afbe8fd3d73448c9&interfaceCode=b5018a28d5f8609f&pid=92b01a8207f5c404"-X GET https://act.vip.iqiyi.com/api/process.action
4、curl -H Head_infos
作用:自定义Header头信息
示例:curl -H "User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" -H "Referer:http://www.iqiyi.com" http://vip.iqiyi.com
5、curl -L url
作用:跟踪链接url重定向,有些页面或接口被重定向,直接使用curl url会返回
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr>
<center>nginx/1.14.0</center> </body>
</html>
示例:curl -L 重定向url
6、curl -O url……
作用:下载指定资源文件到当前目录中
示例:curl -O http://sr4.pplive.cn/cms/15/70/0dbb8ec002f1353e487d13fd949727a3.jpg -O http://sr4.pplive.cn/cms/39/88/4441be4257c21285c504509e479a43ea.jpg