cURL 是用于通过互联网传输数据的最常用命令行工具之一。它支持多种协议,包括 HTTP 和 HTTPS,可用于网页抓取、测试 API 和调试网络连接。无论您需要从公共网站获取数据还是与 API 交互,cURL 都是您的最佳选择。

这篇文章将指导您如何使用 cURL 发送 GET 请求。我们将通过传递参数、标头和 JSON 响应等常见场景的示例,将其分解为简单的步骤。

目录

  1. 什么是 GET 请求?
  2. 使用 cURL 发送简单的 GET 请求
  3. 带参数的 GET 请求
  4. 使用 GET 请求检索 HTTP 标头
  5. 使用 cURL 获取 JSON 数据
  6. 处理 cURL GET 请求中的重定向
  7. 使用 GET 请求发送 Cookies
  8. cURL GET 请求选项概述
  9. 总结
  10. 常见问题

什么是 GET 请求?

GET 请求是从服务器检索数据的最简单、最常用的 HTTP 方法。当您在浏览器中输入 URL 并按回车键时,浏览器会向托管网站的服务器发送 GET 请求。服务器通过发回请求的数据(如 HTML 内容、图像或 JSON 数据)进行响应,然后您的浏览器会显示这些数据。

与 POST 等将数据发送到服务器的其他 HTTP 方法不同,GET 请求仅用于获取资源。这使得 GET 请求非常适合:

  • 检索网页。
  • 访问 API 端点以获取数据。
  • 获取静态资源,如图像或样式表。

以下是使用 cURL 的 GET 请求的简单示例:

1
curl https://crawlbase.com

此命令检索指定网页的 HTML 并将其显示在您的终端中。

使用 cURL 发送简单的 GET 请求

使用 cURL 的 GET 请求是从服务器获取数据的最简单方法。cURL 默认为 GET,因此您不需要指定它。

以下是发出基本 GET 请求的方法:

1
curl http://httpbin.org/get

这将请求来自 https://example.com。服务器将响应资源(通常是 HTML 或其他数据),这些数据将显示在您的终端上。

要将输出保存到文件而不是打印到终端,请使用 -o 选项​​:

1
curl -o 输出.html https://example.com

关键点:

  • 使用 curl 后面跟着 URL 来进行基本的 GET 请求。
  • 添加 -o 标志将响应保存到文件。

这是您从网站或 API 获取数据的起点。现在我们将了解如何发送带参数的 GET 请求。

带参数的 GET 请求

有时您需要在 GET 请求中传递参数,以便向服务器提供更多数据。传递参数的方法有两种:

使用 -G-d 附加选项

-G 选项允许您使用 GET 请求发送数据,-d 选项指定参数。以下是示例:

1
卷曲-G-d “参数1=值1” -d “参数2=值2” http://httpbin.org/get

在这种情况下, param1=value1param2=value2 是作为查询字符串发送到服务器的参数。

将参数附加到 URL

您还可以将参数直接附加到 URL。操作方法如下:

1
卷曲 'http://httpbin.org/get?param1=value1¶m2=value2'

在这种情况下参数 param1param2 添加到 URL 之后 ? 并由 &.

两种方法都会处理参数并返回数据。选择权在你,但两种方法都会给出相同的结果。

使用 GET 请求检索 HTTP 标头

当您使用 cURL 执行 GET 时,您还可以获取 HTTP 标头以及响应主体。HTTP 标头对于了解响应、服务器类型、内容类型等非常有用。

要在响应中包含 HTTP 标头,请使用 -i or --include 选项​​:

1
curl -i http://httpbin.org/headers

此命令将返回响应主体和 HTTP 标头。或者,如果您只想要标头而不想要主体,请使用 --head 选项​​:

1
2
卷曲—— http://httpbin.org/headers

当您只需要有关请求的元数据而不是实际内容时,这很有用。

使用 cURL 获取 JSON 数据

要使用 cURL 从服务器获取 JSON 数据,您可以告诉 cURL 您希望以 JSON 格式获取响应。这在处理以 JSON 格式返回数据的 API 时非常方便。

要请求 JSON 数据,请使用 -H 选项来设置 Accept 标题到 application/json:

1
卷曲-H “接受:应用程序/json” http://httpbin.org/get

这告诉服务器您期望 JSON 格式的响应。如果服务器支持,您将收到 JSON 格式的响应,您可以使用它进行进一步处理。

处理 cURL GET 请求中的重定向

使用 cURL 发出 GET 请求时,服务器可能会返回重定向到另一个 URL。cURL 默认不遵循重定向。要遵循重定向,请使用 -L or --location option.

以下是如何使用它:

1
curl -L http://httpbin.org/redirect-to?url=http://httpbin.org/get

这将遵循重定向并从新 URL 获取内容。在使用发送重定向(301 或 302 状态代码)的网站或 API 时很有用。

使用 GET 请求发送 Cookies

某些网站要求您通过 GET 请求发送 Cookie,以保留会话或跟踪用户活动。您可以使用 -b or --cookie cURL 中的选项。

以下是使用 GET 请求发送 cookie 的方法:

1
curl -b “用户名=JohnDoe;sessionId=12345” http://httpbin.org/cookies

在此示例中,cookie usernamesessionId 与 GET 请求一起发送。您还可以从文件中提供 cookie:

1
curl -b cookies.txt http://httpbin.org/cookies

这使您可以与需要用户会话、登录或其他基于 cookie 的数据的网站进行交互。

cURL GET 请求选项概述

以下是可以与 GET 请求一起使用的一些关键 cURL 选项:

cURL GET 请求选项图片

下表总结了允许您自定义 GET 请求以满足您的需求的关键 cURL 选项。

总结

cURL 是一款出色的工具,可用于发送 GET 请求并从 Web 服务器获取数据。您可以获取 Web 内容、处理参数、管理 Cookie、遵循重定向以及使用 API。无论您是抓取数据还是自动执行任务,cURL 都能让一切变得轻松灵活。

一旦掌握了 cURL GET 请求和选项,您就可以与网络资源进行交互并获取所需的数据。通过练习,您将能够使用 cURL 进行所有网络抓取和自动化项目,它是您工具箱中的必备工具。

常见问题

问:什么是 cURL GET 请求?

cURL GET 请求用于从服务器获取数据。它向指定的 URL 发送 HTTP 请求并获取服务器的响应,该响应可以是网页、JSON 数据或任何其他资源。这用于网页抓取、API 交互和测试网页资源。

问:如何在 cURL 中使用 GET 请求发送参数?

您可以在 GET 请求中发送参数,方法是将其附加到 URL 或使用 -G-d 选项​​。

  • URL 中包含参数的示例:
    curl 'http://example.com/data?param1=value1&param2=value2'
  • 例子 -G-d:
    curl -G -d "param1=value1" -d "param2=value2" http://example.com/data

问:我可以使用 cURL 检索 JSON 数据吗?

是的,你可以通过设置 Accept: application/json 您的 cURL 请求中的标头。
示例:
curl -H "Accept: application/json" http://example.com/data
如果支持的话,这会告诉服务器以 JSON 格式返回数据。