在64位 Windows 上运行 cURL

我是 cURL 的新手,刚刚安装,但它似乎只做它的感觉。我使用的是从这里得到的64位版本: http://curl.haxx.se/latest.cgi?curl=win64-ssl-sspi和我在这里找到的安装说明: http://guides.instructure.com/m/4214/l/83393-how-do-i-install-and-use-curl-on-a-windows-machine。打开一个新的 Powershell 窗口我可以像这样使用一个简单的 GET 请求:

curl http://localhost:3000

但是如果我运行一个 POST

curl -d "hello world" http://localhost:3000

它告诉我“ Invoke-WebRequest: 由于参数名‘ d’不明确,参数无法处理。可能的匹配包括:-DisableKeepAlive-Debug。”

我打字是为了寻求帮助

curl -h or curl --help

gives me "Invoke-WebRequest : Missing an argument for parameter 'Headers'. Specify a parameter of type 'System.Collections.IDictionary' and try again."

正如我所提到的,我是一个 cURL 新手,但是它只能接收请求,而不能接收其他任何请求,这似乎有些奇怪。知道我哪里做错了吗?

Windows 764位 Powershell 版本4

77029 次浏览

您的问题是没有使用您安装的 Curl,而是使用了一个名为 Invoke-WebRequest的 CmdLet。

只要执行:

Remove-item alias:curl

再次测试你的卷发,然后存储在你的个人资料。

解释是它存在一个 Invoke-WebRequest的本机别名,这是一个 CmdLet,它应该提供一个 算是吧 curl 服务。


从 Windows 10 build 17063及更高版本(2018年4月)开始,Curl被包含到 Windows 中,因此您可以直接从 Cmd.exe 或 PowerShell.exe 执行它。要在 PowerShell 中使用它,请注意不要使用这个 CmdLet 的别名或显式调用 curl.exe。

使用 Schannel (Microsoft 的本地 TLS 引擎)构建的 libcurl 仍然执行对等证书验证,但是它不使用 CA 证书包,而是使用构建在操作系统中的证书。

你可以用 abc0而不是 abc1来执行 curl 命令,命令提示符不像 Windows PowerShell 那样是 curl 命令的别名。

要打开命令提示符,按 Win + R,在输入框 <Enter>中键入 cmd