    HTTP(1)                          User Commands                         HTTP(1)

    NAME
           http - HTTP Client program

    SYNOPSIS
           http [options] [files] url

           [--auth  basic|digest  ]  [--benchmark  ] [--cert file] [--chunk size ]
           [--continue] [--cookie cookieString] [--data]  [--debugger]  [--delete]
           [--form string] [--header 'key: value'] [--host hostName] [--iterations
           count] [--key file] [--log logSpec] [--method HTTP_METHOD] [--nofollow]
           [--noout] [--out file] [--password pass] [--post] [--printable] [--pro-
           tocol  version]  [--provider   name]   [--put]   [--range   byteRanges]
           [--retries  count]  [--sequence] [--showHeaders] [--showStatus] [--sin-
           gle] [--threads count] [--timeout  seconds]  [--upload]  [--user  name]
           [--verify] [--verbose] [--workers count] [--zero]

    DESCRIPTION
           The  http  command  issues  HTTP  commands to retrieve files from a web
           server. If "files" are provided on the command line these are  included
           in the request body data.

    OPTIONS
           --auth basic|digest
                  Set the type of authentication to use. Defaults to basic.

           --benchmark
                  Output timing results after retrieving URLs.

           --cert file
                  Certificate  to  send  to the server to identify the client.  If
                  using --cert, you will need to use --key to specify the  private
                  key file.

           --cacert bundle
                  Certificate  bundle  to  use when validating the server certifi-
                  cate.

           --chunk size
                  Request that web  server  use  use  transfer  encoding  for  the
                  response  and  break  the  response  data  into  chunks  of  the
                  requested size. This is an Appweb web server custom  header  and
                  will be ignored by other web servers.

           --continue
                  Continue on errors. Default is to stop on the first error.

           --cookie cookieString
                  Define  a  cookie string to send with the request. Multiple uses
                  okay.

           --debugger
                  Run in debug mode and disable all timeouts. Useful when  running
                  a  server in the debugger to prevent the client from retrying or
                  killing the request.

           --data String of raw body data to send with the request.

           --delete
                  Issue a DELETE request. This is an alias for --method DELETE.

           --form formData
                  String of body data to send with the request. Assumed to be  URL
                  encoded. ie. "name=paul&address=uk".  You cannot use this switch
                  with either the --datafile or --form switches.

           --header "key: value"
                  Add a custom header to send with the request. Multiple  --header
                  switches can be supplied.

           --host name
                  Prepend  all  URLs  with  the specified host. For example if '-h
                  www.myHost.com:8888" were used with the URL "/index.html",  then
                  http will retrieve http://www.myHost.com:8888.

           --iterations count
                  Retrieve  the  URLs  iterations  times. Useful for load testing.
                  This switch can also be abbreviated as -i.

           --key file
                  Private key file to use with the certificate file specified  via
                  --cert.

           --log logSpec
                  Specify  a  file  to  log  messages.  The syntax is: "--log log-
                  File[:logLevel]".  Level 3 will trace the request  and  response
                  headers.

           --method method
                  Set  the  HTTP  method.  Values  may be "GET", "PUT", "OPTIONS",
                  "TRACE".

           --nofollow
                  Don't automatically follow redirects.  Normal  behaviour  is  to
                  follow  redirects and reissue the request if the server responds
                  with a redirection response (30X response).

           --noout
                  Run in quiet mode and do no output. Suppress  tracing  requests.
                  This switch can also be abbreviated as -n or as --quiet or -q.

           --out file
                  Save response output to the given file.

           --password passPhrase
                  Specify  a  password  to  send with the request. Requires a user
                  name to be also specified via --user.

           --post Issue a POST request. This is an alias for --method POST.

           --printable
                  Make binary output printable by printing  hex  digits  for  each
                  character.

           --protocol HTTP_VERSION
                  Use  the  specified  HTTP protocol. httpVersion should be either
                  '0' for HTTP/1.0 or 1 for HTTP/1.1.

           --provider openssl|matrixssl
                  Select the SSL stack provider.

           --put  Issue a PUT request. This is an alias for --method PUT.

           --range byteRange
                  Request that only the specified byte range of data  be  returned
                  with  the  response.  This  will  add  a  "Range"  header to the
                  request.  The range format   is:   Range:  bytes=n1-n2,n3-n4,...
                  where  n1  is  first byte position and n2 is last byte position.
                  Multiple --range switches can be supplied.  Examples:

                  0-49             first 50 bytes
                  50-99,200-249    Two 50 byte ranges from 50 and 200
                  -50              Last 50 bytes
                  1-               Skip first byte then emit the rest

           --retries retryCount
                  Retry failed requests this number of times.

           --showHeaders
                  Output HTTP headers to stdout. Useful for debugging.

           --showStatus
                  Output the HTTP response code to  stdout.   If  this  switch  is
                  used, the command will always exit with zero status.

           --single
                  Single  step  between  requests by pausing for user input before
                  proceeding.

           --threads loadThreads
                  Number of threads to use. Each URL  will  be  retrieved  by  all
                  threads. Useful only for load testing.

           --timeout seconds
                  Specifies a timeout to use for each request in seconds.

           --upload
                  Issue  a POST request with multipart mime encoding for the files
                  specified on the command line. This is  an  alias  for  --method
                  POST with files on the command line.

           --user user
                  Specify  a  user name to send with the request. If a password is
                  not specified via --password, the  program  will  prompt  for  a
                  password  (which  will not be echoed). The username and password
                  will be sent with the request according  to  the  authentication
                  protocol required by the requested web server and requested doc-
                  ument.

           --verify
                  Verify the server presented certificate  when  using  SSL.  This
                  will  verify  the certificate has not expired, is validly issued
                  and that the certificate common name  corresponds  to  the  host
                  name.

           --verbose
                  Verbose  mode. Trace activity to stdout. Can by specified multi-
                  ple times for more verbose tracing.  This  switch  can  also  be
                  abbreviated as -v.

           --workers count
                  Specify the number of worker threads to use. Worker threads tem-
                  porarily assigned to process callbacks.

           --zero Exit with a zero status for any valid  HTTP  response.  Normally
                  returns a non-zero status if the HTTP response code is not a 2XX
                  or 3XX series response code.

    REPORTING BUGS
           Report bugs to dev@embedthis.com.

    COPYRIGHT
           Copyright (C) 2003-2013 Embedthis Software.

    http                               July 2013                           HTTP(1)