windows curl常见命令示例
curl
是一个强大的命令行工具,用于传输数据,支持多种协议,包括 HTTP、HTTPS、FTP 等。在 Windows 系统中,curl
的用法与 Linux/macOS 类似,但需要注意一些细节,特别是关于命令行参数的转义。
以下是一些常见的 Windows curl
命令示例:
基本GET请求
-
获取网页内容并显示在终端:
curl https://www.uuooo.com
说明: 这是最基本的用法,
curl
会发送一个 HTTP GET 请求,并将https://www.uuooo.com
的 HTML 内容直接输出到命令提示符窗口。 -
将网页内容保存到文件:
curl -o mypage.html https://www.uuooo.com
说明:
-o
(小写o) 选项用于将响应内容保存到指定的文件名 (mypage.html
)。 -
使用URL中的文件名保存内容:
curl -O https://www.uuooo.com/index.html
说明:
-O
(大写O) 选项会根据 URL 中指定的文件名 (index.html
) 将响应内容保存到本地文件。如果 URL 末尾没有文件名,此命令可能无法成功。
查看HTTP头信息
-
显示响应头和响应体:
curl -i https://www.uuooo.com
说明:
-i
选项会显示服务器返回的HTTP响应头和响应体。 -
仅显示响应头:
curl -I https://www.uuooo.com
说明:
-I
(大写i) 选项或--head
选项只会发送一个 HEAD 请求,只获取并显示HTTP响应头,不下载页面内容,这对于检查网站状态或调试非常有用。
发送HTTP请求方法 (POST, PUT, DELETE等)
curl
默认使用 GET 方法。要指定其他 HTTP 方法,可以使用 -X
选项。
-
发送POST请求(表单数据):
curl -X POST -d "param1=value1¶m2=value2" https://api.uuooo.com/resource
说明:
-X POST
指定请求方法为 POST。-d
或--data
选项用于发送请求体数据。在 Windows CMD 中,如果数据中包含特殊字符(如&
),可能需要用双引号""
将整个数据字符串括起来。 -
发送POST请求(JSON数据):
curl -X POST -H "Content-Type: application/json" -d "{\"key1\":\"value1\", \"key2\":\"value2\"}" https://api.uuooo.com/resource
说明:
-H "Content-Type: application/json"
设置请求头,告知服务器发送的是 JSON 数据。-d
后面的 JSON 字符串需要用双引号""
括起来。在 Windows CMD 中,JSON 字符串内部的双引号"
需要用反斜杠\
进行转义,例如\"
。
-
发送PUT请求:
curl -X PUT -d "updated_data" https://api.uuooo.com/resource/123
说明: 用于更新服务器上的资源。
-
发送DELETE请求:
curl -X DELETE https://api.uuooo.com/resource/123
说明: 用于删除服务器上的资源。
自定义请求头
- 添加自定义请求头:
说明:curl -H "Authorization: Bearer YOUR_API_KEY" https://api.uuooo.com/data
-H
或--header
选项用于添加自定义的 HTTP 请求头。
处理重定向
- 跟随HTTP重定向:
说明: 默认情况下,curl -L http://www.uuooo.com/old-page
curl
不会跟随 HTTP 3xx 重定向。-L
选项会指示curl
自动跟随重定向直到最终目的地。
文件上传
- 上传文件 (FTP示例):
说明:curl -u "username:password" -T "localfile.txt" ftp://ftp.uuooo.com/upload/
-u "username:password"
用于指定认证凭据。-T
选项用于上传文件。
下载大文件并恢复传输
- 从中断处恢复下载:
说明:curl -O -C - https://download.uuooo.com/largefile.zip
-C -
选项允许curl
从中断的地方恢复下载。这在下载大文件时非常有用。-O
选项用于保存文件到本地,文件名与远程文件相同。
显示详细信息
- 显示详细的传输过程:
说明:curl -v https://www.uuooo.com
-v
或--verbose
选项会显示非常详细的传输信息,包括请求头、响应头、SSL/TLS 握手信息等,对于调试非常有用。
静默模式
- 隐藏进度条和错误信息:
说明:curl -s https://www.uuooo.com
-s
或--silent
选项会使curl
进入静默模式,不显示进度条或错误信息。通常与-o
选项一起使用,只为了获取文件内容。
注意事项 (Windows特有)
-
行延续符: 在 Unix/Linux/macOS 中,使用
\
作为行延续符可以将一个长的curl
命令分成多行。在 Windows CMD 中,你应该使用^
(脱字号) 作为行延续符。例如:curl -X POST ^ -H "Content-Type: application/json" ^ -d "{\"key\":\"value\"}" ^ https://api.uuooo.com/resource
注意:
^
后面不能有空格,否则会转义空格而不是换行。 -
路径分隔符: 在指定本地文件路径时,Windows 使用
\
作为路径分隔符,而curl
通常也支持/
。例如C:\Users\username\file.txt
或C:/Users/username/file.txt
。 -
引号的使用: 在 Windows CMD 中,对于包含空格或特殊字符的参数,通常需要使用双引号
"
。对于 JSON 数据等需要内部转义双引号的情况,要格外小心。PowerShell 对引号和转义的处理可能与 CMD 不同。
这些示例涵盖了 curl
在 Windows 上最常见的用法。通过灵活运用这些命令和选项,你可以完成各种网络数据传输任务。