Bash 脚本发送 HTTP 请求的指南66


在 Bash 脚本中发送 HTTP 请求非常有用,因为它使您可以自动执行任务、从 Web 服务检索数据以及与远程 API 交互。本指南将向您展示如何使用 cURL 和 wget 实用程序从 Bash 脚本发送 HTTP 请求。

使用 cURL

cURL 是一个强大的命令行工具,可用于发送 HTTP 请求。要在 Bash 脚本中使用 cURL,您可以使用以下语法:
#!/bin/bash
curl -X [METHOD] [OPTIONS] [URL]

其中:* `-X` 指定请求方法(例如 GET、POST、PUT 或 DELETE)
* `[OPTIONS]` 可选标志以自定义请求(例如设置头文件或启用调试)
* `[URL]` 请求的 URL

例如,以下脚本使用 cURL 发送 GET 请求以从服务器获取数据:
#!/bin/bash
response=$(curl -X GET /api/data)
echo $response

此脚本将获取 /api/data URL 中的数据并将其存储在 `response` 变量中。您可以使用 `echo` 命令打印响应。

使用 wget

wget 是另一个可用于从 Bash 脚本发送 HTTP 请求的实用程序。要使用 wget,您可以使用以下语法:
#!/bin/bash
wget [OPTIONS] [URL]

其中:* `[OPTIONS]` 可选标志以自定义请求(例如设置头文件或启用调试)
* `[URL]` 请求的 URL

例如,以下脚本使用 wget 发送 GET 请求以从服务器下载文件:
#!/bin/bash
wget /

此脚本将从 / URL 下载文件并将其保存在当前目录中。

设置请求选项

您可以使用 cURL 和 wget 设置各种请求选项以自定义行为。一些最常见的选项包括:| 选项 | 描述 |
|---|---|
| `-H` | 设置请求头 |
| `--data` | 设置请求正文 |
| `--timeout` | 设置请求超时 |
| `--user-agent` | 设置用户代理 |
| `--output` | 设置保存响应的文件 |

例如,以下脚本使用 cURL 发送 POST 请求并设置一个请求头:
#!/bin/bash
curl -X POST -H "Content-Type: application/json" /api/data -d '{"name": "John Doe"}'

此脚本将发送一个 POST 请求,其中设置了 `Content-Type` 头并包含一个 JSON 负载。

处理响应

发送请求后,您可以使用 cURL 或 wget 的内置功能处理响应。以下是最常见的操作:| 操作 | 描述 |
|---|---|
| `echo $response` | 打印响应正文 |
| `grep "pattern" $response` | 搜索响应正文中的模式 |
| `wc -l $response` | 计算响应正文中的行数 |
| `jq . $response` | 使用 jq 解析 JSON 响应 |

例如,以下脚本使用 cURL 发送 GET 请求并搜索响应正文中的模式:
#!/bin/bash
response=$(curl -X GET /api/data)
if grep "success"

2024-12-08


上一篇:探索 SCP 的 Bash 脚本:自定义自动化脚本化

下一篇:Bash脚本中的艺术:使用Echo和printf绘制图形