curl/docs/cmdline-opts/data-urlencode.md
Daniel Stenberg 2494b8dd51
docs/cmdline: change to .md for cmdline docs
- switch all invidual files documenting command line options into .md,
   as the documentation is now markdown-looking.

 - made the parser treat 4-space indents as quotes

 - switch to building the curl.1 manpage using the "mainpage.idx" file,
   which lists the files to include to generate it, instead of using the
   previous page-footer/headers. Also, those files are now also .md
   ones, using the same format. I gave them underscore prefixes to make
   them sort separately:
   _NAME.md, _SYNOPSIS.md, _DESCRIPTION.md, _URL.md, _GLOBBING.md,
   _VARIABLES.md, _OUTPUT.md, _PROTOCOLS.md, _PROGRESS.md, _VERSION.md,
   _OPTIONS.md, _FILES.md, _ENVIRONMENT.md, _PROXYPREFIX.md,
   _EXITCODES.md, _BUGS.md, _AUTHORS.md, _WWW.md, _SEEALSO.md

 - updated test cases accordingly

Closes #12751
2024-01-23 14:30:15 +01:00

52 lines
1.6 KiB
Markdown

---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Long: data-urlencode
Arg: <data>
Help: HTTP POST data URL encoded
Protocols: HTTP
Added: 7.18.0
Category: http post upload
Multi: append
See-also:
- data
- data-raw
Example:
- --data-urlencode name=val $URL
- --data-urlencode =encodethis $URL
- --data-urlencode name@file $URL
- --data-urlencode @fileonly $URL
---
# `--data-urlencode`
This posts data, similar to the other --data options with the exception
that this performs URL-encoding.
To be CGI-compliant, the <data> part should begin with a *name* followed
by a separator and a content specification. The <data> part can be passed to
curl using one of the following syntaxes:
## content
This makes curl URL-encode the content and pass that on. Just be careful
so that the content does not contain any = or @ symbols, as that makes
the syntax match one of the other cases below!
## =content
This makes curl URL-encode the content and pass that on. The preceding =
symbol is not included in the data.
## name=content
This makes curl URL-encode the content part and pass that on. Note that
the name part is expected to be URL-encoded already.
## @filename
This makes curl load data from the given file (including any newlines),
URL-encode that data and pass it on in the POST.
## name@filename
This makes curl load data from the given file (including any newlines),
URL-encode that data and pass it on in the POST. The name part gets an equal
sign appended, resulting in *name=urlencoded-file-content*. Note that the
name is expected to be URL-encoded already.