mirror of
https://github.com/curl/curl.git
synced 2026-08-03 15:01:21 +03:00
tool: New option --data-raw to HTTP POST data, '@' allowed.
Add new option --data-raw which is almost the same as --data but does not have a special interpretation of the @ character. Prior to this change there was no (easy) way to pass the @ character as the first character in POST data without it being interpreted as a special character. Bug: https://github.com/bagder/curl/issues/198 Reported-by: Jens Rantil
This commit is contained in:
parent
f1e0a0aae7
commit
6a7261359b
3 changed files with 15 additions and 7 deletions
|
|
@ -196,6 +196,7 @@ static const struct LongShort aliases[]= {
|
|||
{"c", "cookie-jar", TRUE},
|
||||
{"C", "continue-at", TRUE},
|
||||
{"d", "data", TRUE},
|
||||
{"dr", "data-raw", TRUE},
|
||||
{"da", "data-ascii", TRUE},
|
||||
{"db", "data-binary", TRUE},
|
||||
{"de", "data-urlencode", TRUE},
|
||||
|
|
@ -1099,6 +1100,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
char *postdata = NULL;
|
||||
FILE *file;
|
||||
size_t size = 0;
|
||||
bool raw_mode = (subletter == 'r');
|
||||
|
||||
if(subletter == 'e') { /* --data-urlencode*/
|
||||
/* [name]=[content], we encode the content part only
|
||||
|
|
@ -1124,7 +1126,6 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
}
|
||||
if('@' == is_file) {
|
||||
/* a '@' letter, it means that a file name or - (stdin) follows */
|
||||
|
||||
if(curlx_strequal("-", p)) {
|
||||
file = stdin;
|
||||
set_binmode(stdin);
|
||||
|
|
@ -1185,7 +1186,7 @@ ParameterError getparameter(char *flag, /* f or -long-flag */
|
|||
return PARAM_NO_MEM;
|
||||
}
|
||||
}
|
||||
else if('@' == *nextarg) {
|
||||
else if('@' == *nextarg && !raw_mode) {
|
||||
/* the data begins with a '@' letter, it means that a file name
|
||||
or - (stdin) follows */
|
||||
nextarg++; /* pass the @ */
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ static const char *const helptext[] = {
|
|||
" --crlf Convert LF to CRLF in upload",
|
||||
" --crlfile FILE Get a CRL list in PEM format from the given file",
|
||||
" -d, --data DATA HTTP POST data (H)",
|
||||
" --data-raw DATA HTTP POST data, '@' allowed (H)",
|
||||
" --data-ascii DATA HTTP POST ASCII data (H)",
|
||||
" --data-binary DATA HTTP POST binary data (H)",
|
||||
" --data-urlencode DATA HTTP POST data url encoded (H)",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue