简介
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
cURL(客户端URL)是一个开放源代码的命令行工具,也是一个跨平台的库(libcurl),用于在服务器之间传输数据,并分发给几乎所有新的操作系统。cURL编程用于需要通过Internet协议发送或接收数据的几乎任何地方。
cURL支持几乎所有的互联网协议(DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,MQTT,POP3,POP3S,RTMP,RTMPS,RTSP,SCP,SFTP,SMB,SMBS,SMTP ,SMTPS,TELNET和TFTP)。
cURL的作用
cURL旨在通过互联网协议传输数据。其他所有内容均不在其范围内。它甚至不处理传输的数据,仅执行传输流程。
cURL可用于调试。例如使用“ curl -v https://oxylabs.io ”可以显示一个连接请求的详细输出,包括用户代理,握手数据,端口等详细信息。
可列出和解释的cURL命令选项太多了。幸运的是,可以使用“ curl –help”这个选项,它列出了所有curl命令行的用法,并附有简短的解释性注释。尽管这些命令行用法里没有有关如何使用cURL的相关背景知识介绍,用户也能通过列表知道一些命令行的用法。
使用cURL
几乎所有具有相对较新操作系统的人都可以使用cURL,因为cURL在Windows,MacOS和大多数Linux发行版中作为默认设置提供。对于较早的系统,例如10之前的任何Windows操作系统,可能需要下载并安装cURL 。
要使用cURL,只需打开终端并输入“curl”。正常情况下,“curl -help”会自动跳出,用户可以选择是否执行“ curl –help”命令行。如前所述,“帮助”将列出所有命令可能性。
可以通过添加列出的命令行并键入URL来组合cURL命令。参数可以是短的(例如-o,-L等)或长的(例如-verbose)。这些参数通过使用单破折号或双破折号来区分。
发送请求
cURL是通过Internet协议进行数据传输且功能强大的工具。想要详细说明cURL能干什么并列出所有选项将是一项无法完成的任务。cURL用法多种多样,下面给大家展示一些常见的通用案例。
由于cURL最初是为HTTP开发的,因此我们可以发送所有常规请求(POST,GET,PUT等)。为了将POST请求发送到URL,使用-d(或–data)命令行。大多数网站都会拒绝未经授权的用户的此类请求,因此我们将使用虚假的API进行测试。
curl -d “name=something&value=somethingelse”
https://jsonplaceholder.typicode.com/posts/
发送这样的请求应该返回:
{
"name": "something",
"value": "somethingelse",
"id": 101
}
这里简单说下整个过程:
curl开始我们的命令
-d是POST请求的“数据”参数
引号(“”)开始我们的内容声明。请注意,某些操作系统将仅接受单引号,而其他操作系统将接受双引号。
最后是目的地。URL语法应始终准确,因为cURL不会自动跟随重定向。
我们也可以以JSON格式发送POST请求,但必须提供其他选项才能告诉服务器我们正在发送JSON。cURL不会代表用户做任何解释,并且会发送默认的application / text的Content-Type标头,因此我们必须自己添加标头Content-Type:application / json。
curl -H "Content-Type: application/json" --data
"{\"data\":\"some data\"}"
https://jsonplaceholder.typicode.com/posts/
资源:
https://www.ruanyifeng.com/blog/2011/09/curl.html
https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
https://baike.baidu.com/item/curl/10098606?fr=aladdin
https://zhuanlan.zhihu.com/p/369516927