Title: CURL Cheatsheet
Slug: curl-cheatsheet
Author: Kartones
Lang: en
Description: A cheatsheet of curl command examples for common HTTP methods and content types.

* XML GET
```bash
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET "http://hostname/resource"
```
* JSON GET
```bash
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET "http://hostname/resource"
```
* JSON PUT
```bash
curl -i -H 'Content-Type: application/json' -H 'Accept: application/json' -X PUT -d '{"updated_field1":"updated_value1"}' "http://hostname/resourcex"
```
* JSON POST uploading a file
```bash
curl -i -H 'Accept: application/json' -X POST -F "filename=@/file/path" -F "other_field=its_value"   "http://hostname/resource"
```
* JSON DELETE
```bash
curl -i -H 'Content-Type: application/json' -H 'Accept: application/json' -X DELETE -d '{"key1":"value1"}' "http://hostname/resource"
```
* POST
```bash
curl -i -X POST -H 'Content-Type: application/x-www-form-urlencoded' --data 'key1=value1&key2=value2' url
```
* "Debugging mode" (without actual content output)
```bash
curl -XGET -vvv http://hostname/resource > dev\null
```
* Custom UserAgent
```bash
curl -A "some-user-agent" http://hostname/resource
```

### Useful arguments
* ```-k```: don't check SSL certificates
* ```-L```: follow redirects
* ```-v```: get verbose output
* ```-V```: get headers at output