Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running cURL on 64 bit Windows

I'm new to cURL, just got it installed but it seems to only do what it feels like. I'm using the 64 bit version I got from here: http://curl.haxx.se/latest.cgi?curl=win64-ssl-sspi with installation instructions I found here: http://guides.instructure.com/m/4214/l/83393-how-do-i-install-and-use-curl-on-a-windows-machine. Opening a new Powershell window I'm able to use a simple GET request like so:

curl http://localhost:3000 

but if I run a POST

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

it tells me "Invoke-WebRequest : Parameter cannot be processed because the parameter name 'd' is ambiguous. Possible matches include: -DisableKeepAlive -Debug."

Trying to get help I type

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."

As I mentioned, I'm a cURL newbie but it seems strange that it can do get requests but nothing else. Any ideas what I'm doing wrong?

Windows 7 64 bit Powershell version 4

like image 374
Jonathon Nordquist Avatar asked Jul 30 '14 18:07

Jonathon Nordquist


People also ask

Can you run curl on Windows?

Using cURL in Windows. You can use the Windows command prompt to run the cURL examples. To start the command prompt, open the Start menu, type cmd in the search box, and press Enter. Note: If you use Windows, we recommend you use the Ubuntu terminal environment to run Bash commands.

Does Windows 10 have curl?

If your Windows 10 build is 17063, or later, cUrl is included by default. All you need to do is run Command Prompt with administrative rights and you can use cUrl . The Curl.exe is located at C:\Windows\System32. If you want to be able to use cUrl from anywhere, consider adding it to Path Environment Variables.


1 Answers

Your problem is that your are not using the Curl you installed but a CmdLet called Invoke-WebRequest.

Just execute :

Remove-item alias:curl 

And test your curl again, then store it in your profile.

The explanation is that it exists a native alias to the Invoke-WebRequest which is a CmdLet that is supposed to deliver a kind of curl service.


From Windows 10 build 17063 and later (April 2018), Curl is included into Windows, so that you can execute it directly from Cmd.exe or PowerShell.exe. To use it in PowerShell be careful to unalias this CmdLet or explicitly call curl.exe.

Built with Schannel (Microsoft's native TLS engine), libcurl still perform peer certificate verification, but instead of using a CA cert bundle, it uses the certificates that are built into the OS.

like image 156
JPBlanc Avatar answered Oct 18 '22 20:10

JPBlanc