本文最后更新于:星期六, 三月 14日 2020, 5:40 下午
curl命令行工具的用法
curl简介
curl是一个开源的用于数据传输的命令行工具与库,主要用来发出网络请求,然和得到和提取数据,最后显示在“标准输出”上。它使用URL语法格式,支持很多种协议,如 DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS 等等。curl库提供了很多功能,可以用来进行HTTP/HTTPS请求,上传/下载文件等,并且它还支持Cookie、认证、代理、限速等。
curl的使用
访问URL
curl命令后面直接加上要访问的网址,就可以看到网页的源码 ,它不加任何参数时发出的请求是GET请求。
如果想将这个网页保存下来,可以使用’-o’参数,指定保存的文件名
重定向跟踪
如果页面使用了重定向,可以使用‘-L’参数来跟踪URL重定向,curl就会跳转到新网址
查看头信息
如果需要查看访问的页面可以使用 参数 ‘-i’, 如果只需要查看头信息可以用参数’-I’
显示通信过程
‘-v’参数可以显示一次http通信的完整过程,包括端口连接,以及http request头信息
如果需要更加详细的信息,可以使用’–trace’ 或者’–trace-ascii’参数,这两个参数后面加要保存的文件名
指定请求方式
curl通过’-X’参数来指定请求方式,默认不加这个参数时使用GET请求
GET请求
不加参数或者使用’-X GET’指定
curl -X GET URL
假设表单源码为
<form name="input" action="demo.php" method="GET" > <input type="text" name="nickname"> <input type="password" name="passwd"> <input type="submit" value="Submit"> </form>
直接将参数附在网址后面就可以了
curl http://192.168.45.129/demo1.html?nickname=zs0zrc&&passwd=123
POST请求
curl使用POST提交表单数据时,除了使用’-X’指定请求方法,还要用’-d’ 指定请求数据。如果数据没有经过URL编码,可以用’–data-urlencode’来对数据进行编码
假设表单源码为
<form name="input" action="demo.php" method="POST" enctype="multipart/form-data"> <input type="text" name="nickname"> <input type="password" name="passwd"> <input type="submit" value="Submit"> </form>
命令:
curl -X POST -d "nickname=zs0zrc&passwd=123" http://192.168.45.129/demo1.html curl -X POST --data-urlnecode "nickname=zs 0zrc&passwd=123" http://192.168.45.129/demo1.html
因为使用了’-d’参数后,HTTP请求会自动添加
Content-Type: application/x-www-form-urlencoded
并且会自动将请求方法转换为POST,所以可以直接这样用
curl -d "nickname=zs0zrc&passwd=123" http://192.168.45.129/demo1.html
-d
参数可以直接读取本地文件的内容,作为数据体向服务器传送curl -d "@data.txt" http://192.168.45.129/demo1.html
如果要以json的格式上传参数,要使用’-H’指定header
curl -H "Content-Type:application/json" -X POST -d '{"username":"zs0zrc","passwd":"123"}' [URL]
指定cookie
使用’–cookie’参数可以让curl发送cookie
curl --cookie "usrname=zs0zrc" www.example.com
curl可以通过’-c’参数保存服务器返回的cookie值到文件,然后通过’-b’参数指定目标文件作为cookie信息
curl -c cookies http://example.com curl -b cookies http://example.co
增加header信息
使用’–header’参数,后面加需要添加的头信息
curl --header "Content-Type:application/json" http://example.com
HTTP基本认证
使用’–user’参数,指定name和password
curl --user name:password http://example.com
REFERENCE
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!