'"Positional Parameter" error when posting data with cURL

If I were to issue the command without the --data "...", it works just fine. I've tried Google and I can't find any answers to this problem. Following the directions located here I'm getting the following errors when I attempt to post data with 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


Solution 1:[1]

Your problem is answered here: Running cURL on 64 bit Windows

You're not running curl you're running something called Invoke-WebRequest, which is aliased to curl. You need to unalias curl, download and install curl (if you haven't already).

Solution 2:[2]

Remove-item alias:curl

this will be happen to curl easily!!

TRY AND FUN.. AND ALSO curl can make your own SHORTEN URL , so Don't need to work with 3rd parties.. :D

Solution 3:[3]

Use the Command Prompt instead of using PowerShell.

If you are using PowerShell then you will need to prefix the curl command with cmd /c. For example:

cmd /c curl --data "SMethod=0" "http://localhost/terra/modules/scripts/Query.php"

Solution 4:[4]

As the other answers already mentioned the curl command in powershell is aliased and uses the Invoke-WebRequest cmdlet under the hood. It has similar capabilities to curl.

You can make a POST request and send & receive data without the need to install anything:

curl -body "SMethod=0" "http://localhost/terra/modules/scripts/Query.php" -Method 'POST'

The option -body (Invoke-WebRequest) is the equivalent of -d or --data (curl). The HTTP Method also must be specified.

This StackOverflow answer also considers New-WebServiceProxy and Invoke-RestMethod.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community
Solution 2 sounish nath
Solution 3 James
Solution 4 Tobi Obeck