Curlify - convert Python Requests request object to cURL command
Remove Python 2 compatibility
Add pretty parameter to enable generating a multi-line command
Don't add -X when it's unnecessary
Correctly send empty headers
Don't generate --data that would read a file
Don't sort headers, their order is deterministic on Python 3.7+
Fixed shell quotes. Fixed posting CSV file. Thanks to @leNEKO
Add --insecure flag if verify parameter is not True
Fixed body rendering when using json param to request function.
Added compressed parameter to to_curl function, if it is needed to add --compressed option to generated cURL command.
Skip -d option if request body is empty #6
Minor changes to header sorting
Order of headers is deterministic (thanks to @tomviner)
import curlify
import requests
response = requests .get ("http://google.ru" )
print (curlify .to_curl (response .request ))
# curl -X 'GET' -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: python-requests/2.18.4' 'http://www.google.ru/'
print (curlify .to_curl (response .request , compressed = True ))
# curl -X 'GET' -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Connection: keep-alive' -H 'User-Agent: python-requests/2.18.4' --compressed 'http://www.google.ru/'