在Windows控制台中运行cURL命令

442

有没有一种在Windows上安装cURL的方法,以便可以从命令提示符中运行cURL命令?


4
然后还有VBScript / PowerShell。https://dev59.com/vXVC5IYBdhLWcg3wtzkQ - Kalpesh Soni
1
我注意到同样的问题在SuperUser上发布了,链接在这里:http://superuser.com/questions/134685/run-curl-commands-from-windows-console - Simon East
7
从2018年5月开始,使用Windows 10版本1803及以上版本,你可以直接在Windows控制台上运行curl命令:https://dev59.com/RWkw5IYBdhLWcg3w_fmK#50200838 - VonC
4
实际上,自 Insider 版本 17063 开始,已经包含了 curl。 - phuclv
1
如果您使用的是Windows 10,那么大多数情况下curl已经被安装了。打开命令提示符并输入curl --version以进行验证。 - Hiruni K
显示剩余4条评论
23个回答

463

如果您不熟悉Cygwin,您可以使用本机Windows构建版本。一些版本在这里:cURL下载向导


还有一个叫做msys2的工具,我还没有看到有人提到过。如果你之前安装过Haskell,可能已经安装了它。 - DPM
15
你可以安装Git并使用内置的git bash。在安装后就会自带。 (见下面的答案)。 - BRogers
1
这个已经过时了,请参考答案 https://dev59.com/K3E85IYBdhLWcg3wkkfK#61384072。在较新版本的Windows中,curl命令在PowerShell中可用。 - Jojo

177

更新: Curl 现在已经包含在 Windows 中,无需通过 PowerShell 运行。

首先,您需要下载 cURL 可执行文件。对于 Windows 64 位,从 这里 下载;对于 Windows 32 位,请从这里 下载。 之后,将 curl.exe 文件保存在您的 C: 盘上。

要使用它,只需打开 命令提示符 并输入:

C:\curl http://someurl.com

2
非常有帮助。非常简单易懂。感谢您的发布。 - Adrian Carr
1
如果你要在Windows上进行编程,使用双引号 " 而不是单引号 ' 是非常重要的 :) - chomp
1
@Ricardo Sanchez,我们可以每秒传递多少个请求调用吗?我的要求是在Windows操作系统中每秒钟需要访问URL 5次。 - Kms
1
curl.exe现在已经包含在Windows中。 - Mike W
@chomp 没错,经过一个小时的尝试,我可以确认!有人仍然在想为什么我认为这个操作系统是纯粹的垃圾。数据:-d "{"order":"1","Name":"ts1"}" - Twistleton
在Windows Powershell中,确保调用'curl.exe'而不是默认的'curl',后者只会给Invoke-WebRequest起一个别名,详细解释请参考https://curl.se/windows/microsoft.html。 - Eric Saund

165

3
这意味着你可以像在OSX或Linux中一样运行它,无需使用特殊命令。只需启动 Git Bash 并开始使用 cURL :) - BRogers
2
这个答案需要更多的赞。对于熟悉Mac终端或Unix发行版的用户来说,这是正确的方式。 - BigRon
1
谢谢 :) 由于我主要使用Git(无论我使用的操作系统是什么),所以我需要安装Git Bash。我不喜欢安装向导或额外的膨胀。我也不太喜欢尝试在Windows中使用PowerShell来完成所有任务。 - BRogers
我刚刚验证了Git CMD也可以运行curl。为什么使用CMD?因此我不必为Git Bash设置控制复制。 - Aaron C

48

更新: Curl 现已包含在 Windows 中,无需通过 PowerShell 运行。

如果只需要查看或保存 GET 请求的结果,而不是实际需要 curl 可执行文件的人,可以直接使用 powershell。从正常的命令提示符中,输入:

powershell -Command "(new-object net.webclient).DownloadString('http://example.com')"

虽然有点冗长,但与打字相似

curl http://example.com/

在更Unix风格的环境下。

有关net.webclient的更多信息,请参见此处:WebClient Methods (System.Net)

更新:我喜欢ImranHafeez在此答案中进一步扩展了此功能。然而,我更喜欢一个更简单的cmd脚本,也许可以创建一个包含以下内容的curl.cmd文件:

@powershell -Command "(new-object net.webclient).DownloadString('%1')"

这可以像上面的类Unix示例一样被称为:

curl http://example.com/

1
凭据可以通过以下方式提供:powershell -Command "$wc=new-object net.webclient;$wc.Credentials=new-object System.Net.NetworkCredential(%user%,%pass%);$wc.DownloadString('%input%')",来源于 https://dev59.com/WXRB5IYBdhLWcg3wyqOo#509394 - Max
警告:此方法不会将GET参数传递到页面。我在PHP页面中使用了这个方法。curl https://www.example.com/mypage.php?action=hello。在mypage.php脚本中,$_GET['action']为空。 - Stephen R
现代的Windows安装程序现在已经内置了Curl。在尝试通过PowerShell实现之前,请先尝试使用它。 - matty

28
如果您使用Chocolatey软件包管理器,可以通过从命令行或PowerShell运行以下命令来安装cURL:
choco install curl

12

从2018年初开始,随着Windows 10 Insider Build 17063的推出,curl可以在cmd和powershell中使用。


11

在Windows中创建批处理文件,并使用cURL在Windows中愉快地使用 :)

@echo off
echo You are about to use windows cURL, Enter your url after curl command below:
set /p input="curl "
cls
echo %input%
powershell -Command "(new-object net.webclient).DownloadString('%input%')"
pause

9

目前在Windows 10 build 17063及以上版本中,cURL已默认安装。因此您无需下载,只需使用curl.exe即可。


7
  1. 访问下载页面https://curl.haxx.se/download.html - 非常好用
  2. 从列表中选择您的系统
  3. 不要忘记 SSL 支持,这很明显,例如用于 https
  4. curl.exe.crt 解压到 C:\Windows\System32
  5. 重新启动命令提示符
  6. 享受 > curl https://api.stackexchange.com

p.s. 如果您想将可执行文件存储在另一个文件夹中,请检查您的路径 > echo %PATH%


6

如果您从http://curl.haxx.se/dlwiz/?type=bin&os=Win64&flav=MinGW64下载,它应该可以完美地工作在64位的Win7/XP上,或者您也可以从http://curl.haxx.se/dlwiz/?type=bin&os=Win32&flav=-&ver=2000%2FXP下载,适用于32位的Win7/XP,只需将文件提取到c:/Windows并从cmd中运行即可。

C:\Users\WaQas>curl -v google.com
* About to connect() to google.com port 80 (#0)
*   Trying 173.194.35.105...
* connected
* Connected to google.com (173.194.35.105) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.28.1
> Host: google.com
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 301 Moved Permanently
< Location: http://www.google.com/
< Content-Type: text/html; charset=UTF-8
< Date: Tue, 05 Feb 2013 00:50:57 GMT
< Expires: Thu, 07 Mar 2013 00:50:57 GMT
< Cache-Control: public, max-age=2592000
< Server: gws
< Content-Length: 219
< X-XSS-Protection: 1; mode=block
< X-Frame-Options: SAMEORIGIN
< X-Cache: MISS from LHR-CacheMARA3
< X-Cache-Lookup: HIT from LHR-CacheMARA3:64003
< Connection: close
<
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
* Closing connection #0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接