curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。
GET方法:
curl example.com/form.cgi?data=xxxPOST方法:
# POST 方法必须把数据跟网址分开 curl -X POST --data "data=xxx" example.com/form.cgi # 参数--data-urlencode 可以给表单数据进行URL编码 curl -X POST --data-urlencode "data=April 1 " example.com/form.cgi-d 参数用于发送 post 请求的数据体
# 使用-d 参数后,http请求会自动加上标头Content-Type:application/x-wwww.form-urlencoded curl -d "login=emma&password=123" -X POST https://baidu.comPUT方法:
curl -X PUT -d '123123123' http://127.0.0.1:3001/1DELETE方法:
curl -X DELETE http://127.0.0.1:3001/1curl默认的http动词是get,使用 -X 参数可以支持其他动词:
curl -X POST www.baidu.com curl -X DELETE www.baidu.com表单样式:
<form method="POST" enctype='multipart/form-data' action="upload.cgi"> <input type=file name=upload> <input type=submit name=press value="OK"> </form> curl --form upload=@localfileName --form press=ok url-F 参数可以用来向服务器上传二进制文件
# 下面命令会给HTTP请求加上标头 Content-Type:multipart/form-data,然后将文件photo.png作为file 字段上传 curl -F "file=@photo.png" http://baidu.com # -F 参数也可以指定 MIME 类型 curl -F "file=@photo.png;type=image/png" http://baidu.com # -F 参数也可以指定文件名 curl -F "file=@photo.png;filename=me.png" https:baidu.com # 上面命令中,原始文件名为photo.png,但服务器接收到的文件名为me.png在请求头中添加 referer 字段,表示从哪里跳转过来
curl --referer https://baidu.com-e 参数也可以用来设置HTTP的标头Referer,表示请求的来源
curl -e "https://baidu.com?q=example" https://example.com这个字段是用来表示客户端是设备信息,服务器有时会根据这个字段,针对不同设备返回不同格式网页
curl --user-agent "[user agent]" [url]“–cookie” 参数可以让 curl 发送 cookie 字段
curl --cookie "name=xxx" www.baidu.com # "-c cookie-file" 可以保存服务器返回的cookie到文件 curl -c cookies https://baidu.com # "-b cookie-file" 可以使用这个文件作为cookie 信息 curl -b cookies https://baidu.com-b 参数用来向服务器发送 Cookie
# 下面命令会生成一个标头 Cookie:foo=bar,向服务器发送一个名为foo\值为bar的Cookie curl -b "foo=bar" https://baidu.com # 下面命令读取本地文件 cookies.txt curl -b cookies.txt https://baidu.com具体的cookie值,可以从http response 头信息的 set-cookie 字段中得到
在请求头部消息中增加一个头信息
curl --header "Content-Type:application/json" http://baidu.com-x
# 下面命令指定HTTP请求通过myproxy.com:8080 的sockes5代理发出 # 不指定sockes5 代理的话,默认为HTTP curl -x socks5://james:cats@myproxy.com:8080 https://www.baidu.com