如果我发出不带
--data "..."
的命令,它就可以正常工作。我试过谷歌,但找不到这个问题的任何答案。按照位于 here 的说明进行操作,当我尝试使用 cURL 发布数据时,出现以下错误:
PS C:\Users\David> curl --data "SMethod=0" "http://localhost/terra/modules/scripts/Query.php"
Invoke-WebRequest : A positional parameter cannot be found that accepts argument 'SMethod=0'.
At line:1 char:1
+ curl --data "SMethod=0" "http://localhost/terra/modules/scripts/Query.php"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
您的问题在这里得到解答:在 64 位 Windows 上运行 cURL
您没有运行curl,而是运行名为Invoke-WebRequest 的东西,它是curl 的别名。您需要取消别名curl,下载并安装curl(如果还没有)。
Remove-item alias:curl
这样很容易卷曲!!
尝试并有趣..而且
curl
可以自己制作
SHORTEN URL
,所以不需要与第三方合作..:D
使用命令提示符而不是使用 PowerShell。
如果您使用 PowerShell,则需要在curl 命令前加上
cmd /c
前缀。例如:
cmd /c curl --data "SMethod=0" "http://localhost/terra/modules/scripts/Query.php"
正如其他答案已经提到的那样,powershell 中的curl 命令是别名,并在底层使用Invoke-WebRequest cmdlet。它具有与curl类似的功能。
您可以发出 POST 请求并发送和接收数据,而无需安装任何东西:
curl -body "SMethod=0" "http://localhost/terra/modules/scripts/Query.php" -Method 'POST'
选项
-body
(Invoke-WebRequest) 相当于 -d
或 --data
(curl)。还必须指定 HTTP 方法。
这个 StackOverflow 答案 还考虑了 New-WebServiceProxy 和 Invoke-RestMethod。
要解决此问题,请在 VS Code 编辑器中指定 Git Bash 或除 Powershell 之外的任何其他终端类型。
主终端窗口右侧有一个终端类型下拉菜单。
应该看起来像这样。 + v(单击颠倒的胡萝卜并选择 git bash)
如果 git bash 不是选项。安装 git bash。 git bash 太棒了。
希望这有帮助。