curl in Mac OS X
By: Strauss K
Transfer data from or to a server, using one of the protocols: HTTP, HTTPS, FTP, FTPS, SCP, SFTP, TFTP, DICT, TELNET, LDAP or FILE. (To transfer multiple files use wget or FTP.)
Syntax curl [options...] url Options: (H) means HTTP/HTTPS only, (F) means FTP only -a/--append Append to target file when uploading (F) -A/--user-agent string User-Agent to send to server (H) --anyauth Pick "any" authentication method (H) -b/--cookie name=string/file Cookie string or file to read cookies from (H) --basic Use HTTP Basic Authentication (H) -B/--use-ascii Use ASCII/text transfer -c/--cookie-jar file Write cookies to this file after operation (H) -C/--continue-at offset Resumed transfer offset -d/--data data HTTP POST data (H) --data-ascii data HTTP POST ASCII data (H) --data-binary data HTTP POST binary data (H) --negotiate Use HTTP Negotiate Authentication (H) --digest Use HTTP Digest Authentication (H) --disable-eprt Inhibit using EPRT or LPRT (F) --disable-epsv Inhibit using EPSV (F) -D/--dump-header file Write the headers to this file --egd-file file EGD socket path for random data (SSL) --tcp-nodelay Use the TCP_NODELAY option -e/--referer Referer URL (H) -E/--cert cert[:passwd] Client certificate file and password (SSL) --cert-type type Certificate file type (DER/PEM/ENG) (SSL) --key key Private key file name (SSL/SSH) --key-type type Private key file type (DER/PEM/ENG) (SSL) --pass pass Pass phrase for the private key (SSL/SSH) --pubkey key Public key file name (SSH) --engine eng Crypto engine to use (SSL). "--engine list" for list --cacert file CA certificate to verify peer against (SSL) --capath directory CA directory (made using c_rehash) to verify peer against (SSL) --ciphers list SSL ciphers to use (SSL) --compressed Request compressed response (using deflate or gzip) --connect-timeout seconds Maximum time allowed for connection --create-dirs Create necessary local directory hierarchy --crlf Convert LF to CRLF in upload -f/--fail Fail silently (no output at all) on HTTP errors (H) --ftp-account data Account data to send when requested by server (F) --ftp-alternative-to-user String to replace "USER [name]" (F) --ftp-create-dirs Create the remote dirs if not present (F) --ftp-method [multicwd/nocwd/singlecwd] Control CWD usage (F) --ftp-pasv Use PASV/EPSV instead of PORT (F) --ftp-skip-pasv-ip Skip the IP address for PASV (F) --ftp-ssl Try SSL/TLS for ftp transfer (F) --ftp-ssl-control Require SSL/TLS for ftp login, clear for transfer (F) --ftp-ssl-reqd Require SSL/TLS for ftp transfer (F) --ftp-ssl-ccc Send CCC after authenticating (F) --ftp-ssl-ccc-mode [active/passive] Set CCC mode (F) -F/--form name=content Specify HTTP multipart POST data (H) --form-string name=string Specify HTTP multipart POST data (H) -g/--globoff Disable URL sequences and ranges using {} and [] -G/--get Send the -d data with a HTTP GET (H) -h/--help This help text -H/--header line Custom header to pass to server (H) --ignore-content-length Ignore the HTTP Content-Length header -i/--include Include protocol headers in the output (H/F) -I/--head Show document info only -j/--junk-session-cookies Ignore session cookies read from file (H) --interface interface Specify network interface/address to use --krb level Enable kerberos with specified security level (F) -k/--insecure Allow connections to SSL sites without certs (H) -K/--config Specify which config file to read --libcurl file Dump libcurl equivalent code of this command line -l/--list-only List only names of an FTP directory (F) --limit-rate rate Limit transfer speed to this rate --local-port num[-num] Force use of these local port numbers -L/--location Follow Location: hints (H) --location-trusted Follow Location: and send authentication even to other hostnames (H) -m/--max-time seconds Maximum time allowed for the transfer --max-redirs num Maximum number of redirects allowed (H) --max-filesize bytes Maximum file size to download (H/F) -M/--manual Display the full manual -n/--netrc Must read .netrc for user name and password --netrc-optional Use either .netrc or URL; overrides -n --ntlm Use HTTP NTLM authentication (H) -N/--no-buffer Disable buffering of the output stream --no-sessionid Disable SSL session-ID reusing (SSL) -o/--output file Write output to file instead of stdout -O/--remote-name Write output to a file named as the remote file -p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT) --proxy-anyauth Pick "any" proxy authentication method (H) --proxy-basic Use Basic authentication on the proxy (H) --proxy-digest Use Digest authentication on the proxy (H) --proxy-ntlm Use NTLM authentication on the proxy (H) -P/--ftp-port address Use PORT with address instead of PASV (F) -q If used as the first parameter disables .curlrc -Q/--quote cmd Send command(s) to server before file transfer (F/SFTP) -r/--range range Retrieve a byte range from a HTTP/1.1 or FTP server --random-file file File for reading random data from (SSL) --raw Pass HTTP "raw", without any transfer decoding (H) -R/--remote-time Set the remote file's time on the local output --retry num Retry request num times if transient problems occur --retry-delay seconds When retrying, wait this many seconds between each --retry-max-time seconds Retry only within this period -s/--silent Silent mode. Don't output anything -S/--show-error Show error. With -s, make curl show errors when they occur --socks4 host[:port] Use SOCKS4 proxy on given host + port --socks5 host[:port] Use SOCKS5 proxy on given host + port --stderr file Where to redirect stderr. - means stdout -t/--telnet-option OPT=val Set telnet option --trace file Write a debug trace to the given file --trace-ascii file Like --trace but without the hex output --trace-time Add time stamps to trace/verbose output -T/--upload-file file Transfer file to remote site --url URL Set URL to work with -u/--user user[:password] Set server user and password -U/--proxy-user user[:password] Set proxy user and password -v/--verbose Make the operation more talkative -V/--version Show version number and quit -w/--write-out [format] What to output after completion -x/--proxy host[:port] Use HTTP proxy on given port -X/--request command Specify request command to use -y/--speed-time Time needed to trig speed-limit abort. Defaults to 30 -Y/--speed-limit Stop transfer if below speed-limit for 'speed-time' secs -z/--time-cond time Transfer based on a time condition -0/--http1.0 Use HTTP 1.0 (H) -1/--tlsv1 Use TLSv1 (SSL) -2/--sslv2 Use SSLv2 (SSL) -3/--sslv3 Use SSLv3 (SSL) -4/--ipv4 Resolve name to IPv4 address -6/--ipv6 Resolve name to IPv6 address -#/--progress-bar Display transfer progress as a progress bar
Examples
Post a message to twitter (http/insecure):
$ curl -u myusername:mypassword -S -d status="Everything is OK" http://twitter.com/statuses/update.xml
Post a message to twitter (https):
$ curl -u myusername:mypassword -d "status=Everything is OK" https://twitter.com/statuses/update.xml
Download a file via http:
$ curl --user myusername:mypassword http://www.somewebsite.com/image.jpg> image.jpg
Archived Comments
1. In your example http://twitter.com/statuses/update.xml is this page still valid or has twitter made
View Tutorial By: thomas wilkinson at 2012-11-02 01:03:45
Most Viewed Articles (in macos ) |
Latest Articles (in macos) |
Comment on this tutorial