如何在 Linux 中使用 curl 从 URL 获取数据

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

Curl 是一个多功能的开源命令行工具,它允许你通过各种协议(包括 HTTP、FTP 等)传输数据。对于需要与 Web 服务、API 和其他基于网络的资源进行交互的开发人员和系统管理员来说,它是一个很有价值的工具。本教程将指导你掌握使用 Curl 从网络获取数据的基础知识,并探索用于自定义和自动化 Curl 请求的更高级技术。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/RemoteAccessandNetworkingGroup -.-> linux/nc("Networking Utility") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/wget("Non-interactive Downloading") subgraph Lab Skills linux/nc -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/ifconfig -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/netstat -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/ping -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/ip -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/curl -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} linux/wget -.-> lab-415079{{"如何在 Linux 中使用 curl 从 URL 获取数据"}} end

Curl:一个多功能的命令行工具

Curl 是一个功能强大的开源命令行工具,用于通过各种协议(包括 HTTP、FTP、SFTP 等)传输数据。它是一个多功能工具,可用于从简单的网页下载到复杂的数据传输和 API 交互等广泛的任务。

Curl 的关键特性之一是它能够处理各种数据格式,包括 JSON、XML 和纯文本。这使其成为需要与 Web 服务、API 和其他基于网络的资源进行交互的开发人员和系统管理员的宝贵工具。

要开始使用 Curl,你可以使用以下命令在你的 Ubuntu 22.04 系统上简单地安装它:

sudo apt-get install curl

安装完成后,你可以使用 Curl 执行各种任务,例如:

## 获取一个网页
curl

## 下载一个文件
curl -O

## 发送带有数据的 POST 请求
curl -X POST -d "param1=value1&param2=value2"

这些只是你可以使用 Curl 的众多方式中的几个示例。在下一节中,我们将更深入地探讨使用 Curl 从网络获取数据的基础知识。

使用Curl获取数据:掌握基础知识

Curl最常见的用例之一是从网络获取数据。无论你是在下载文件、与API交互,还是仅仅检索网页内容,Curl都提供了一种强大且灵活的方式来实现。

要使用Curl获取数据,你可以使用以下基本语法:

curl [选项] [URL]

这里,[选项]表示各种标志和参数,你可以用它们来自定义请求,而[URL]是你想要获取的资源的URL。

例如,要检索网页的内容,你可以使用以下命令:

curl

这会将页面的HTML内容输出到你的终端。你也可以使用-o-O选项将输出保存到文件:

## 将输出保存到名为“example.html”的文件
curl -o example.html

## 使用与URL相同的名称保存输出
curl -O

除了基本的URL获取,Curl还支持广泛的HTTP请求类型,包括GETPOSTPUTDELETE。你可以使用-X选项来指定请求类型:

## 发送带有数据的POST请求
curl -X POST -d "param1=value1&param2=value2"

## 发送带有JSON有效负载的PUT请求
curl -X PUT -H "Content-Type: application/json" -d '{"key": "value"}'

通过掌握使用Curl获取数据的基础知识,你将能够很好地利用这个强大的工具来完成从网络自动化到API集成等广泛的任务。

高级Curl:自定义和自动化请求

虽然Curl的基本用法已经相当强大,但该工具还提供了广泛的高级功能和定制选项,可帮助你将数据获取和自动化任务提升到一个新的水平。

自定义Curl请求

自定义Curl的关键方法之一是使用各种选项和标志。一些最有用的选项包括:

  • -H--header:向请求添加自定义标头
  • -d--data:在请求体中发送数据(例如,用于POST请求)
  • -X--request:指定HTTP方法(GET、POST、PUT、DELETE等)
  • -u--user:提供认证凭据
  • -o--output:将响应保存到文件

例如,要发送带有JSON有效负载和自定义标头的POST请求,你可以使用以下命令:

curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}'

使用脚本自动化Curl

除了手动定制外,Curl还可以用作自动化脚本和工作流程的一部分。这对于以下任务特别有用:

  • 定期从API获取和处理数据
  • 对Web服务执行自动化测试和监控
  • 将Curl集成到更大的DevOps或数据处理管道中

要自动化Curl,你只需将相关命令合并到shell脚本中,例如Bash脚本。例如,你可以创建一个脚本,从API获取最新数据,对其进行处理,然后将结果发送到监控系统。

调试Curl请求

在使用Curl时,能够调试可能出现的任何问题也很重要。Curl提供了几个有助于此的选项,例如:

  • -v--verbose:显示有关请求和响应的详细信息
  • -i--include:在输出中包含HTTP标头
  • -L--location:跟随重定向

通过使用这些调试选项,你可以更好地了解Curl请求的行为,并识别可能出现的任何问题。

总的来说,Curl的高级功能和定制选项使其成为用于各种数据获取和自动化任务的强大工具。通过掌握这些技术,你可以释放Curl的全部潜力并简化你的工作流程。

总结

在本教程中,你已经学习了如何使用Curl命令行工具从网络获取数据。你已经掌握了使用Curl检索网页、下载文件以及发送带有数据的POST请求的基础知识。此外,你还探索了更高级的Curl技术,例如自定义请求头、处理认证以及自动化Curl脚本。通过从本教程中学到的知识,你现在可以利用Curl来简化你的数据获取任务,并将其集成到你的各种工作流程和应用程序中。