cURL - Arch Linux 中文维基

跳转到内容

# cURL

来自 Arch Linux 中文维基

翻译状态：

- 本文（或部分内容）译自 CURL，最近一次同步于 2024-09-03，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

cURL 是一个命令行工具和库，用于使用 URL 传输数据。该命令支持多种不同的协议，包括 HTTP、HTTPS、FTP、SCP 和 SFTP。它还可以在没有用户交互的情况下工作，比如在脚本中。

注意：尽管表面上等同于 wget，但事实并非如此。请参阅 Can_I_do_recursive_fetches_with、运行与给定 wget 命令对应的 curl 命令 和 What_is_curl_not。

## 安装

提示：一般情况下，cURL 已作为 pacman包 等软件包的依赖而被安装。

安装 curl包 软件包。

## 用法

### 下载

cURL 的常见用例是将资源下载到指定文件：

    $ curl --output 文件名 URL

如果 URL 包含文件名，则可以直接将资源保存为该文件名：

    $ curl --remote-name URL

同样，你也可以使用 `-J/--remote-header-name` 来接受来自 HTTP 服务器（来自 `Content-Disposition` 头信息）的文件名提示。当与 `-O/--remote-name` 结合使用时，如果 HTTP 服务器没有返回文件名提示，curl 将使用 URL 指定的文件名。

您也可以省略输出选项，将资源打印到 stdout：

    $ curl URL

### HTTP POST

您可以使用 cURL 发送 HTTP POST 请求：

    $ curl --data 'request body' URL

如果命令行无法容纳 request body，cURL 可以从文件中读取 request body：

    $ curl --data @文件名 URL

有时，您可能需要为 `Content-Type` 头指定一个自定义值（cURL 的默认值为 `application/x-www-form-urlencoded`）。您可以使用 `-H` 来实现这一功能。例如，如果您想发送一个带有 JSON body 的 POST request，可以使用：

    $ curl --data 'json body' -H 'Content-Type: application/json' URL

请注意，curl 也有一个选项，可以以 json 格式写入 post 数据，并自动更改 header： `--json`:

    $ curl --json '{"key":"value"}' URL

## 提示与技巧

### 跟踪重定向

跟踪重定向（如 HTTP 到 HTTPS 重定向）：

    $ curl --location URL

### 显示下载错误

默认情况下，curl 会忽略错误（例如，在下载文件时，如果出现错误，curl 不会通知你，创建的文件将是空的），因此使用 `--fail` 可以让它显示错误信息：

    $ curl --fail URL

### 压缩

如果你想压缩传输数据，（例如，在带宽比CPU更有限的情况下，curl 会下载压缩数据，然后在下载后解压缩）：

    $ curl --compressed URL

### 进度条

当下载文件时，curl 可以选择普通的进度条（例如 `[##### ] 80%` ）。

    $ curl --progress-bar URL

### 通配

也可以在 curl 中使用通配：

    $ curl "example.com/images/[1-9].png"
    $ curl "example.com/{first_page,second_page,third_page}"

## 配置文件

curl 也会在主目录和 `$XDG_CONFIG_HOME` 中搜索名为 `.curlrc` 的配置文件。默认情况下，你只需将想要使用的命令行参数放在 curl 中，例如 ：

    $HOME/.curlrc

    # this is a comment, the next line would be the option for progressbar:
    -#
    # to make curl always compress:
    --compressed
    # or just
    compressed

## 参见

- Wikipedia:cURL
- Everything curl - cURL 使用指南详解
- curl(1)

分类：​

- 下载工具

cURL
添加话题