mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-25 04:44:25 +00:00
Added curl notes to the knowledge base
This commit is contained in:
106
knowledge base/curl.md
Normal file
106
knowledge base/curl.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# cURL
|
||||
|
||||
## TL;DR
|
||||
|
||||
```shell
|
||||
# Send a single GET request and show its output on stdout.
|
||||
curl http://url.of/file
|
||||
|
||||
# Be quiet.
|
||||
curl --silent https://www.example.com
|
||||
curl -s --show-error https://www.example.com
|
||||
|
||||
# Download files.
|
||||
curl http://url.of/file -o path/to/file
|
||||
curl -O http://url.of/file1 -O http://url.of/file2
|
||||
curl http://url.of/file[1-24]
|
||||
|
||||
# Resume downloads.
|
||||
curl -C - -o partial_file http://url.of/file
|
||||
|
||||
# Limit downloads bandwidth.
|
||||
curl --limit-rate 1000B -O http://url.of/file
|
||||
|
||||
# Follow redirects.
|
||||
curl -L http://url.of/file
|
||||
|
||||
# Only fetch HTTP headers from a response.
|
||||
curl -I http://example.com
|
||||
|
||||
# Only return the HTTP status code.
|
||||
curl -o /dev/null -w '%{http_code}\n' -s -I http://example.com
|
||||
|
||||
# Send different request types.
|
||||
curl --request PUT http://example.com
|
||||
|
||||
# Specify headers.
|
||||
curl http://example.com -H "Content-Type:application/json" http://example.com
|
||||
|
||||
# Skip certificate validation.
|
||||
curl --insecure https://example.com
|
||||
|
||||
# Pass certificates for a resource.
|
||||
curl --cert client.pem --key key.pem -k https://example.com
|
||||
curl --cacert ca.pem https://example.com
|
||||
|
||||
# Authenticate.
|
||||
curl -u username:password http://url.of/file
|
||||
curl -u username:password -O ftp://url.of/file
|
||||
curl ftp://username:password@example.com
|
||||
|
||||
# POST to a form.
|
||||
curl -F "name=user" -F "password=test" http://example.com
|
||||
curl --data 'name=bob' http://example.com/form
|
||||
|
||||
# Send data.
|
||||
curl http://example.com -H "Content-Type:application/json" -d '{"name":"bob"}' -X POST
|
||||
curl http://example.com -H "Content-Type:application/json" -d @file.json -X POST
|
||||
|
||||
# Use a proxy.
|
||||
curl http://example.com --proxy socks5://localhost:19999
|
||||
|
||||
# Forcefully resolve a host to a given address.
|
||||
curl https://example.com --resolve example.com:443:google.com
|
||||
```
|
||||
|
||||
## Apply settings to all connections
|
||||
|
||||
Unless the `-q` option is used, `curl` always checks for a default config file on invocation and uses it if found.
|
||||
|
||||
The default configuration file is looked for in the following places, in this order:
|
||||
|
||||
1. `$CURL_HOME/.curlrc`
|
||||
1. `$XDG_CONFIG_HOME/.curlrc`, added in 7.73.0
|
||||
1. `$HOME/.curlrc`
|
||||
1. on Windows only: `%USERPROFILE%\.curlrc`
|
||||
1. on Windows only: `%APPDATA%\.curlrc`
|
||||
1. on Windows only: `%USERPROFILE%\Application Data\.curlrc`
|
||||
|
||||
On Non-Windows hosts, `curl` uses `getpwuid` to find the user's home directory.
|
||||
|
||||
On Windows, if curl finds no `.curlrc` file in the sequence described above, it will check for one in the same dir the curl executable is placed.
|
||||
|
||||
```text
|
||||
# ~/.curlrc
|
||||
# Accepts both short and long options.
|
||||
# Options in long format are accepted without the leading two dashes to make it
|
||||
# easier to read.
|
||||
# Arguments must be provided on the same line of the option.
|
||||
# Arguments can be separated by space, '=' and ':'
|
||||
|
||||
location
|
||||
--insecure
|
||||
--user-agent "my-agent"
|
||||
request = "PUT"
|
||||
config: "~/.config/curl"
|
||||
```
|
||||
|
||||
## Sources
|
||||
|
||||
- [cheat.sh]
|
||||
- [How to ignore invalid and self signed ssl connection errors with curl]
|
||||
- [Config file]
|
||||
|
||||
[cheat.sh]: https://cheat.sh/curl
|
||||
[config file]: https://everything.curl.dev/cmdline/configfile
|
||||
[how to ignore invalid and self signed ssl connection errors with curl]: https://www.cyberciti.biz/faq/how-to-curl-ignore-ssl-certificate-warnings-command-option/
|
||||
Reference in New Issue
Block a user