plan9fox/sys/man/1/hget

231 lines
3.6 KiB
Text
Raw Normal View History

.TH HGET 1
.SH NAME
2012-10-18 13:23:40 +00:00
hget, hpost, urlencode \- retrieve, post to a web page corresponding to a url
.SH SYNOPSIS
.B hget
[
.B -l
|
.B -o
2012-01-11 15:17:54 +00:00
.I file
] [
.B -p
.I body
2012-09-15 05:07:19 +00:00
|
.B -P
] [
.B -r
.I header
2012-01-11 15:17:54 +00:00
] [
.B -m
.I method
] [
.B -b
.I baseurl
]
.I url
.PP
2012-10-14 04:28:58 +00:00
.B hpost
[
.B -l
] [
.B -g
.I action
|
.B -p
.I action
|
.B -m
.I action
] [
.B -u
]
.I url
[
.I name:value
|
2012-10-14 04:28:58 +00:00
.I name@file
]
.I ...
2012-10-18 13:23:40 +00:00
.PP
.B urlencode
[
.B -d
] [
.I file
]
.SH DESCRIPTION
.I Hget
retrieves the web page specified by the URL
.I url
and writes it, absent the
.B -l
and
.B -o
options, to standard output.
2012-01-11 15:17:54 +00:00
.PP
The
.I url
can be a relative path like
.B ../index.html
if a absolute
.I baseurl
was specified with the
.B -b
option.
.PP
If
.I url
is of type HTTP and the
.B -p
2012-09-15 05:07:19 +00:00
or
.B -P
options are specified, then a HTTP POST is performed.
With
.B -p
the data to be posted is provided by the
.I body
2012-09-15 05:07:19 +00:00
argument as a string or alternatively with
.B -P
read from standard input.
.PP
The
.B -l
option causes
.I hget
and
.I hpost
to print the location URL from the transactoin response
instead of retriving the the body data. This is usefull
for HTTP POST transactions that redirect to a URL containing
the prosted data so we wont refetch the data we just uploaded
to the site.
.PP
The
.B -o
option is used to keep a local file in sync with a
web page. If the web page has been modified later than the
file, it is copied into the file. If the file is up to date
but incomplete,
.I hget
will fetch the missing bytes.
.PP
Option
.B -r
sends an arbitrary HTTP
.IR header .
.PP
Option
2012-01-11 15:17:54 +00:00
.B -m
overrides the HTTP method used for the request.
.PP
2012-10-14 04:28:58 +00:00
.I Hpost
retrieves the web page specified by the URL
.I url,
parses its HTML for form data, then prints
2012-10-14 04:28:58 +00:00
.IR rc (1)
commands to submit the forms with default field
values.
If an
.I action
URL is provided with the
.B -g, -p
or
.B -m
2012-10-14 04:28:58 +00:00
flags, then
.I hget
2012-10-14 04:28:58 +00:00
is invoked to execute the transaction submitting the form data.
.PP
The
.B -g
and
.B -p
flags set the form method to GET and POST, respectively. The
.B -m
2012-10-14 04:28:58 +00:00
flag sets the form method to POST and its enctype to
.B multipart/form-data.
2013-01-11 09:26:54 +00:00
In all cases, the target relative form action URL is set to
.I action.
.PP
The
.B -u
flag sets the target URL to
.I url.
As the
.I url
parameter is always required, the
.B -u
flag can be omited when
.I url
follows directly after the last option if any.
.PP
The remaining arguments of the form
.B name:value
2012-10-14 04:28:58 +00:00
are interpreted as text form field names and values to be submitted. An
argument of the form
2012-10-14 04:28:58 +00:00
.B name@file
is interpreted as a file upload, with the information following the
.B @
2013-01-11 09:26:54 +00:00
symbol treated as the file name.
For
.B multipart/form-data
uploads (see
.B -m
flag), the file has to be seekable as
.IR file (1)
is invoked to determine its mime type.
2012-10-18 13:23:40 +00:00
.PP
.I Urlencode
is a helper program to URL encode and decode files. The
.B -d
2013-01-11 09:26:54 +00:00
flag, instead of encode, decodes URL encoded file. If no
2012-10-18 13:23:40 +00:00
.I file
is given, standard input is read. The resulting data
is written to standard output.
.SH EXAMPLES
2012-10-14 04:28:58 +00:00
Download a file from the web.
.IP
.EX
% hget http://9front.org/img/nix-on.jpg >/tmp/nix-on.jpg
.EE
.PP
Retrieve the commands needed to submit a form, which may then be
edited and sent.
.IP
.EX
% hpost http://p.intma.in
/bin/hpost -u http://p.intma.in -p paste.cgi text:
.EE
.PP
2012-10-14 04:28:58 +00:00
Manually specify fields to be sent to a given
.I url.
.IP
.EX
% hpost -u http://p.intma.in -p paste.cgi text:'test post'
.EE
.PP
Upload a file, print the resulting URL
.IP
.EX
% hpost -l http://i.intma.in file@/tmp/screen.png | rc
.EE
.SH SOURCE
2012-01-11 15:17:54 +00:00
.B /rc/bin/hget
.br
2012-10-14 04:28:58 +00:00
.B /rc/bin/hpost
2012-10-18 13:23:40 +00:00
.br
.B /sys/src/cmd/urlencode.c
.SH "SEE ALSO"
.IR webfs (4),
.IR ftpfs (4),
.IR file (1)
2012-01-11 15:17:54 +00:00
.SH DIAGNOSTICS
.I Hget
and
.I hpost
require
2012-01-11 15:17:54 +00:00
.IR webfs (4)
service mounted on
.B /mnt/web
to work.