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
新增話題