linux之http命令行工具curl

简介: curl 是一个利用 URL 规则在命令行下进行文件传输工具。支持文件的上传和下载,是一个综合的传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

curl


curl 是一个利用 URL 规则在命令行下进行文件传输工具。支持文件的上传和下载,是一个综合的传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。


格式


curl [option] [url]


常用参数


  • -X 指定 HTTP 请求的方法
  • -O 将服务器回应保存成文件
  • -o 将服务器的回应保存成文件,等同于wget命令
  • -H 添加 HTTP 请求的标头
  • -d 用于发送 POST 请求的数据体
  • -F 用来向服务器上传二进制文件


案例


  1. 将服务器的回应保存成文件,等同于wget命令


$ curl -o example.html https://www.ruanyifeng.com/blog/2019/09/curl-reference.html


上面命令将www.example.com保存成example.html


  1. 将服务器回应保存成文件,并将 URL 的最后部分当作文件名


$ curl -O https://www.ruanyifeng.com/blog/2019/09/curl-reference.html


上面命令将服务器回应保存成文件,文件名为curl-reference.html


  1. 添加 HTTP 请求头


curl -H 'Accept-Language: en-US' -H 'Secret-Message: omg' https://baidu.com


  1. 发送 POST 请求的数据体


$ curl -d 'login=BUG弄潮儿&password=admin' -X POST https://baidu.com/login
# 或者
$ curl -d 'login=BUG弄潮儿' -d 'password=admin' -X POST https://baidu.com/login


使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST


-d参数可以读取本地文本文件的数据,向服务器发送。


$ curl -d '@data.txt' https://baidu.com/login


上面命令读取data.txt文件的内容,作为数据体向服务器发送。


  1. 向服务器上传二进制文件


$ curl -F 'file=@photo.png' https://baidu.com/profile


上面命令会给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传。


-F参数可以指定 MIME 类型。


$ curl -F 'file=@photo.png;type=image/png' https://baidu.com/profile


上面命令指定 MIME 类型为image/png,否则 curl 会把 MIME 类型设为application/octet-stream


-F参数也可以指定文件名。


$ curl -F 'file=@photo.png;filename=head.png' https://baidu.com/profile


上面命令中,原始文件名为photo.png,但是服务器接收到的文件名为head.png

相关文章
|
9月前
|
安全 Linux 定位技术
Curl访问Kerberos SPNEGO保护的HTTP资源
最后,记住,虽然Kerberos的魔法强大且久经考验,但它仍需你谨慎掌握。SPNEGO的舞步看似复杂,但一旦跳起来,你会发现自己在安全和便捷的旋律中翩翩起舞。而Curl,这一灵活敏捷的小工具,它的确有能力成为你施展这些魔法的得力助手。
272 14
|
10月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
300 18
|
11月前
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
1027 30
|
JSON 运维 Ubuntu
Linux下如何使用Curl进行网络请求
希望这篇文章能帮助您在Linux下更好地使用Curl进行网络请求。如有疑问,请随时提问!
682 10
|
API
掌握 HTTP 请求的艺术:理解 cURL GET 语法
掌握 cURL GET 请求的语法和使用方法是 Web 开发和测试中的基本技能。通过灵活运用 cURL 提供的各种选项,可以高效地与 API 进行交互、调试网络请求,并自动化日常任务。希望本文能帮助读者更好地理解和使用 cURL,提高工作效率和代码质量。
1425 7
|
Linux API
Linux下载工具wget与curl
`wget` 是一个用于从网络下载文件的命令行工具,支持HTTP、HTTPS和FTP协议。它能自动处理下载中断,并支持递归下载网站内容。基本用法:`wget URL`,可指定文件名(`-O`)、保存目录(`-P`),还支持断点续传(`-c`)、限速(`--limit-rate`)和递归下载(`-r`)。相比之下,`curl` 更侧重于发送各种HTTP请求(如GET、POST),并支持文件上传、自定义请求头和cookie等功能。
549 10
|
Web App开发 Linux 应用服务中间件
【DrissionPage】Linux上如何将https改为http
通过上述步骤,可以在Linux上将DrissionPage从HTTPS改为HTTP。关键在于修改DrissionPage配置、代码中的HTTPS设置、URL以及Web服务器配置,确保所有部分都正确使用HTTP协议。通过合理配置和测试,能够确保系统在HTTP环境下稳定运行。
588 1
|
存储 网络安全
Curl error (60): SSL peer certificate or SSH remote key was not OK for https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/repodata/repomd.xml [SSL: no alternative certificate subject name matches target host name 'update.cs2c.com.cn']
【10月更文挑战第30天】在尝试从麒麟软件仓库(ks10-adv-os)下载元数据时,遇到 SSL 证书验证问题。错误提示为:`Curl error (60): SSL peer certificate or SSH remote key was not OK`。可能原因包括证书不被信任、证书与域名不匹配或网络问题。解决方法包括检查网络连接、导入 SSL 证书、禁用 SSL 证书验证(不推荐)、联系仓库管理员、检查系统时间和尝试其他镜像。
4492 1
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!

热门文章

最新文章