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)