curl
1、什么是curl
curl 在命令行或脚本中用于传输数据。
curl 是一种用于从服务器传输数据或向服务器传输数据的工具
1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。cURL还包含了用于程序开发的libcurl
curl支持的通信协议有DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP.
curl还支持SSL认证、HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, HTTP/3, cookies, user+password authentication (Basic, Plain, Digest, CRAM-MD5, SCRAM-SHA, NTLM, Negotiate and Kerberos), file transfer resume, proxy tunneling and more
2、下载安装
Linux或Mac系统本身即支持curl
Windows系统:
下载地址:https://curl.se/download.html
①:下载curl
②:安装cygwin,然后选择curl作为cygwin安装的一部分(推荐)
3、使用
输入man curl 查看curl的所有用法,man page:https://curl.se/docs/manpage.html
格式:curl [options / URLs]
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
①:-X 参数指定HTTP请求的方法,通常是GET、POST、PUT;如-X POST 或 -XPOST;默认是GET,可省略-X参数
②:-A 参数指定客户端的用户代理请求头,即User-Agent。curl 的默认用户代理字符串是curl/[version]
如将User-Agent改成Chrome浏览器:$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://www.baidu..com
移除User-Agent请求头:curl -A '' https://google.com
也可以通过 -H 参数直接指定请求,更改User-Agent:curl -H 'User-Agent: php/1.0' https://www.baidu..com
③:-b 参数用来向服务器发送Cookie
curl -b 'foo=bar' https://www.baidu..com
④:-c 参数将服务器返回设置的Cookie写入到一个文件中
如将HTTP响应所设置的Cookie写入文件cookies.txt中:curl -c cookies.txt https://www.baidu..com
⑤:-d 参数用于发送POST请求的数据体
使用-d参数后,HTTP请求会自动加上请求头:Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST
如:curl -d 'login=emma&password=123' https://www.baidu..com
⑥:--data-urlencode参数等同于-d,发送 POST 请求的数据体,区别在于会自动将发送的数据进行 URL 编码
⑦:-G 参数用来构造URL的查询字符串
curl -G -d 'id=123' -d 'name=yang' https://www.baidu..com
上面的命令会发出一个GET请求,实际请求的URL为https://www.baidu.com?id=123&name=yang
如果省略-G 将会发送一个POST请求
⑧:-x 参数指定HTTP请求的代理
示例,发送POST请求,Content-Type: application/json:
curl -X POST "localhost:9200/_security/user/jacknich/_password?pretty" -H 'Content-Type: application/json' -d' { "password" : "new-test-password" } '
END.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类