mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
--request-target: instead of --strip-path-slash
... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH. This option instead provides the full "alternative" target to use in the request, instead of extracting the path from the URL. Test 1298 and 1299 updated accordingly. Idea-by: Evert Pot Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373 Closes #1593
This commit is contained in:
parent
8de8f4eb7e
commit
9b167fd090
@ -42,6 +42,6 @@ DPAGES = abstract-unix-socket.d anyauth.d append.d basic.d cacert.d capath.d cer
|
|||||||
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
|
tlsauthtype.d tlspassword.d tlsuser.d tlsv1.0.d tlsv1.1.d tlsv1.2.d \
|
||||||
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
|
tlsv1.3.d tlsv1.d trace-ascii.d trace.d trace-time.d tr-encoding.d \
|
||||||
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
|
unix-socket.d upload-file.d url.d use-ascii.d user-agent.d user.d \
|
||||||
verbose.d version.d write-out.d xattr.d strip-path-slash.d
|
verbose.d version.d write-out.d xattr.d request-target.d
|
||||||
|
|
||||||
OTHERPAGES = page-footer page-header
|
OTHERPAGES = page-footer page-header
|
||||||
|
8
docs/cmdline-opts/request-target.d
Normal file
8
docs/cmdline-opts/request-target.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Long: request-target
|
||||||
|
Help: Specify the target for this request
|
||||||
|
Protocols: HTTP
|
||||||
|
---
|
||||||
|
Tells curl to use an alternative "target" (path) instead of using the path as
|
||||||
|
provided in the URL. Particularly useful when wanting to issue HTTP requests
|
||||||
|
without leading slash or other data that doesn't follow the regular URL
|
||||||
|
pattern, like "OPTIONS *".
|
@ -1,7 +0,0 @@
|
|||||||
Long: strip-path-slash
|
|
||||||
Help: Strip off the first slash of the path
|
|
||||||
Protocols: HTTP
|
|
||||||
---
|
|
||||||
Tells curl to strip the leading slash from the path when it sends the path to
|
|
||||||
the server. Useful when wanting to issue HTTP requests without leading slash,
|
|
||||||
like "OPTIONS *".
|
|
@ -303,8 +303,8 @@ Start a new cookie session. See \fICURLOPT_COOKIESESSION(3)\fP
|
|||||||
Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
|
Add or control cookies. See \fICURLOPT_COOKIELIST(3)\fP
|
||||||
.IP CURLOPT_HTTPGET
|
.IP CURLOPT_HTTPGET
|
||||||
Do a HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
|
Do a HTTP GET request. See \fICURLOPT_HTTPGET(3)\fP
|
||||||
.IP CURLOPT_STRIP_PATH_SLASH
|
.IP CURLOPT_REQUEST_TARGET
|
||||||
Cut off the leading slash from the path. \fICURLOPT_STRIP_PATH_SLASH(3)\fP
|
Set the request target. \fICURLOPT_REQUEST_TARGET(3)\fP
|
||||||
.IP CURLOPT_HTTP_VERSION
|
.IP CURLOPT_HTTP_VERSION
|
||||||
HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP
|
HTTP version to use. \fICURLOPT_HTTP_VERSION(3)\fP
|
||||||
.IP CURLOPT_IGNORE_CONTENT_LENGTH
|
.IP CURLOPT_IGNORE_CONTENT_LENGTH
|
||||||
|
@ -108,4 +108,4 @@ Returns CURLE_OK if the option is supported, CURLE_UNKNOWN_OPTION if not, or
|
|||||||
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
|
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.BR CURLOPT_HTTPHEADER "(3), " CURLOPT_NOBODY "(3), "
|
.BR CURLOPT_HTTPHEADER "(3), " CURLOPT_NOBODY "(3), "
|
||||||
.BR CURLOPT_STRIP_PATH_SLASH "(3), "
|
.BR CURLOPT_REQUEST_TARGET "(3), "
|
||||||
|
@ -57,4 +57,4 @@ Always
|
|||||||
Returns CURLE_OK
|
Returns CURLE_OK
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.BR CURLOPT_HTTPGET "(3), " CURLOPT_POST "(3), "
|
.BR CURLOPT_HTTPGET "(3), " CURLOPT_POST "(3), "
|
||||||
.BR CURLOPT_STRIP_PATH_SLASH "(3), "
|
.BR CURLOPT_REQUEST_TARGET "(3), "
|
||||||
|
@ -20,18 +20,18 @@
|
|||||||
.\" *
|
.\" *
|
||||||
.\" **************************************************************************
|
.\" **************************************************************************
|
||||||
.\"
|
.\"
|
||||||
.TH CURLOPT_STRIP_PATH_SLASH 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
|
.TH CURLOPT_REQUEST_TARGET 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
CURLOPT_STRIP_PATH_SLASH \- strip the leading slash from the path
|
CURLOPT_REQUEST_TARGET \- specify an alternative target for this request
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STRIP_PATH_SLASH, value);
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_REQUEST_TARGET, string);
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
Pass a long set to 1 to tell libcurl to strip out the leading slash from the
|
Pass a char * to string which libcurl uses in the upcoming request instead of
|
||||||
path when used on the server.
|
the path as extracted from the URL.
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
0 - use the leading slash.
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
HTTP
|
HTTP
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
@ -42,7 +42,7 @@ if(curl) {
|
|||||||
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "OPTIONS");
|
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "OPTIONS");
|
||||||
|
|
||||||
/* issue an OPTIONS * request (no leading slash) */
|
/* issue an OPTIONS * request (no leading slash) */
|
||||||
curl_easy_setopt(curl, CURLOPT_STRIP_PATH_SLASH, 1L);
|
curl_easy_setopt(curl, CURLOPT_REQUEST_TARGET, "*");
|
||||||
|
|
||||||
/* Perform the request */
|
/* Perform the request */
|
||||||
curl_easy_perform(curl);
|
curl_easy_perform(curl);
|
@ -231,6 +231,7 @@ man_MANS = \
|
|||||||
CURLOPT_READFUNCTION.3 \
|
CURLOPT_READFUNCTION.3 \
|
||||||
CURLOPT_REDIR_PROTOCOLS.3 \
|
CURLOPT_REDIR_PROTOCOLS.3 \
|
||||||
CURLOPT_REFERER.3 \
|
CURLOPT_REFERER.3 \
|
||||||
|
CURLOPT_REQUEST_TARGET.3 \
|
||||||
CURLOPT_RESOLVE.3 \
|
CURLOPT_RESOLVE.3 \
|
||||||
CURLOPT_RESUME_FROM.3 \
|
CURLOPT_RESUME_FROM.3 \
|
||||||
CURLOPT_RESUME_FROM_LARGE.3 \
|
CURLOPT_RESUME_FROM_LARGE.3 \
|
||||||
@ -278,7 +279,6 @@ man_MANS = \
|
|||||||
CURLOPT_STREAM_DEPENDS.3 \
|
CURLOPT_STREAM_DEPENDS.3 \
|
||||||
CURLOPT_STREAM_DEPENDS_E.3 \
|
CURLOPT_STREAM_DEPENDS_E.3 \
|
||||||
CURLOPT_STREAM_WEIGHT.3 \
|
CURLOPT_STREAM_WEIGHT.3 \
|
||||||
CURLOPT_STRIP_PATH_SLASH.3 \
|
|
||||||
CURLOPT_SUPPRESS_CONNECT_HEADERS.3 \
|
CURLOPT_SUPPRESS_CONNECT_HEADERS.3 \
|
||||||
CURLOPT_TCP_FASTOPEN.3 \
|
CURLOPT_TCP_FASTOPEN.3 \
|
||||||
CURLOPT_TCP_KEEPALIVE.3 \
|
CURLOPT_TCP_KEEPALIVE.3 \
|
||||||
|
@ -409,7 +409,6 @@ CURLOPT_HTTPPOST 7.1
|
|||||||
CURLOPT_HTTPPROXYTUNNEL 7.3
|
CURLOPT_HTTPPROXYTUNNEL 7.3
|
||||||
CURLOPT_HTTPREQUEST 7.1 - 7.15.5
|
CURLOPT_HTTPREQUEST 7.1 - 7.15.5
|
||||||
CURLOPT_HTTP_CONTENT_DECODING 7.16.2
|
CURLOPT_HTTP_CONTENT_DECODING 7.16.2
|
||||||
CURLOPT_STRIP_PATH_SLASH 7.55.0
|
|
||||||
CURLOPT_HTTP_TRANSFER_DECODING 7.16.2
|
CURLOPT_HTTP_TRANSFER_DECODING 7.16.2
|
||||||
CURLOPT_HTTP_VERSION 7.9.1
|
CURLOPT_HTTP_VERSION 7.9.1
|
||||||
CURLOPT_IGNORE_CONTENT_LENGTH 7.14.1
|
CURLOPT_IGNORE_CONTENT_LENGTH 7.14.1
|
||||||
@ -509,6 +508,7 @@ CURLOPT_READDATA 7.9.7
|
|||||||
CURLOPT_READFUNCTION 7.1
|
CURLOPT_READFUNCTION 7.1
|
||||||
CURLOPT_REDIR_PROTOCOLS 7.19.4
|
CURLOPT_REDIR_PROTOCOLS 7.19.4
|
||||||
CURLOPT_REFERER 7.1
|
CURLOPT_REFERER 7.1
|
||||||
|
CURLOPT_REQUEST_TARGET 7.55.0
|
||||||
CURLOPT_RESOLVE 7.21.3
|
CURLOPT_RESOLVE 7.21.3
|
||||||
CURLOPT_RESUME_FROM 7.1
|
CURLOPT_RESUME_FROM 7.1
|
||||||
CURLOPT_RESUME_FROM_LARGE 7.11.0
|
CURLOPT_RESUME_FROM_LARGE 7.11.0
|
||||||
|
@ -1780,8 +1780,8 @@ typedef enum {
|
|||||||
/* Suppress proxy CONNECT response headers from user callbacks */
|
/* Suppress proxy CONNECT response headers from user callbacks */
|
||||||
CINIT(SUPPRESS_CONNECT_HEADERS, LONG, 265),
|
CINIT(SUPPRESS_CONNECT_HEADERS, LONG, 265),
|
||||||
|
|
||||||
/* Strip the initial slash from the path taken from the URL */
|
/* The request target, instead of extracted from the URL */
|
||||||
CINIT(STRIP_PATH_SLASH, LONG, 266),
|
CINIT(REQUEST_TARGET, STRINGPOINT, 266),
|
||||||
|
|
||||||
CURLOPT_LASTENTRY /* the last unused */
|
CURLOPT_LASTENTRY /* the last unused */
|
||||||
} CURLoption;
|
} CURLoption;
|
||||||
|
@ -2269,8 +2269,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
if(data->set.strip_path_slash)
|
if(data->set.str[STRING_TARGET])
|
||||||
ppath++;
|
ppath = data->set.str[STRING_TARGET];
|
||||||
|
|
||||||
/* url */
|
/* url */
|
||||||
if(paste_ftp_userpwd)
|
if(paste_ftp_userpwd)
|
||||||
|
@ -829,9 +829,9 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option,
|
|||||||
then this can be changed to HEAD later on) */
|
then this can be changed to HEAD later on) */
|
||||||
data->set.httpreq = HTTPREQ_GET;
|
data->set.httpreq = HTTPREQ_GET;
|
||||||
break;
|
break;
|
||||||
case CURLOPT_STRIP_PATH_SLASH:
|
case CURLOPT_REQUEST_TARGET:
|
||||||
arg = va_arg(param, long);
|
result = setstropt(&data->set.str[STRING_TARGET],
|
||||||
data->set.strip_path_slash = (bool)arg;
|
va_arg(param, char *));
|
||||||
break;
|
break;
|
||||||
case CURLOPT_FILETIME:
|
case CURLOPT_FILETIME:
|
||||||
/*
|
/*
|
||||||
|
@ -1588,7 +1588,7 @@ enum dupstring {
|
|||||||
#ifdef USE_UNIX_SOCKETS
|
#ifdef USE_UNIX_SOCKETS
|
||||||
STRING_UNIX_SOCKET_PATH, /* path to Unix socket, if used */
|
STRING_UNIX_SOCKET_PATH, /* path to Unix socket, if used */
|
||||||
#endif
|
#endif
|
||||||
|
STRING_TARGET, /* CURLOPT_REQUEST_TARGET */
|
||||||
/* -- end of zero-terminated strings -- */
|
/* -- end of zero-terminated strings -- */
|
||||||
|
|
||||||
STRING_LASTZEROTERMINATED,
|
STRING_LASTZEROTERMINATED,
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@ -123,7 +123,7 @@ static void free_config_fields(struct OperationConfig *config)
|
|||||||
Curl_safefree(config->pubkey);
|
Curl_safefree(config->pubkey);
|
||||||
Curl_safefree(config->hostpubmd5);
|
Curl_safefree(config->hostpubmd5);
|
||||||
Curl_safefree(config->engine);
|
Curl_safefree(config->engine);
|
||||||
|
Curl_safefree(config->request_target);
|
||||||
Curl_safefree(config->customrequest);
|
Curl_safefree(config->customrequest);
|
||||||
Curl_safefree(config->krblevel);
|
Curl_safefree(config->krblevel);
|
||||||
|
|
||||||
|
@ -139,12 +139,12 @@ struct OperationConfig {
|
|||||||
bool crlf;
|
bool crlf;
|
||||||
char *customrequest;
|
char *customrequest;
|
||||||
char *krblevel;
|
char *krblevel;
|
||||||
|
char *request_target;
|
||||||
long httpversion;
|
long httpversion;
|
||||||
bool nobuffer;
|
bool nobuffer;
|
||||||
bool readbusy; /* set when reading input returns EAGAIN */
|
bool readbusy; /* set when reading input returns EAGAIN */
|
||||||
bool globoff;
|
bool globoff;
|
||||||
bool use_httpget;
|
bool use_httpget;
|
||||||
bool strip_path_slash;
|
|
||||||
bool insecure_ok; /* set TRUE to allow insecure SSL connects */
|
bool insecure_ok; /* set TRUE to allow insecure SSL connects */
|
||||||
bool proxy_insecure_ok; /* set TRUE to allow insecure SSL connects
|
bool proxy_insecure_ok; /* set TRUE to allow insecure SSL connects
|
||||||
for proxy */
|
for proxy */
|
||||||
|
@ -257,7 +257,7 @@ static const struct LongShort aliases[]= {
|
|||||||
{"Fs", "form-string", ARG_STRING},
|
{"Fs", "form-string", ARG_STRING},
|
||||||
{"g", "globoff", ARG_BOOL},
|
{"g", "globoff", ARG_BOOL},
|
||||||
{"G", "get", ARG_NONE},
|
{"G", "get", ARG_NONE},
|
||||||
{"Ga", "strip-path-slash", ARG_BOOL},
|
{"Ga", "request-target", ARG_STRING},
|
||||||
{"h", "help", ARG_BOOL},
|
{"h", "help", ARG_BOOL},
|
||||||
{"H", "header", ARG_STRING},
|
{"H", "header", ARG_STRING},
|
||||||
{"Hp", "proxy-header", ARG_STRING},
|
{"Hp", "proxy-header", ARG_STRING},
|
||||||
@ -1592,8 +1592,8 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'G': /* HTTP GET */
|
case 'G': /* HTTP GET */
|
||||||
if(subletter == 'a') { /* --strip-path-slash */
|
if(subletter == 'a') { /* --request-target */
|
||||||
config->strip_path_slash = TRUE;
|
GetStr(&config->request_target, nextarg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
config->use_httpget = TRUE;
|
config->use_httpget = TRUE;
|
||||||
|
@ -160,8 +160,8 @@ static const struct helptxt helptext[] = {
|
|||||||
"Disable URL sequences and ranges using {} and []"},
|
"Disable URL sequences and ranges using {} and []"},
|
||||||
{"-I, --head",
|
{"-I, --head",
|
||||||
"Show document info only"},
|
"Show document info only"},
|
||||||
{"-H, --header <header>",
|
{"-H, --header <header/@file>",
|
||||||
"Pass custom header LINE to server"},
|
"Pass custom header(s) to server"},
|
||||||
{"-h, --help",
|
{"-h, --help",
|
||||||
"This help text"},
|
"This help text"},
|
||||||
{" --hostpubmd5 <md5>",
|
{" --hostpubmd5 <md5>",
|
||||||
@ -298,8 +298,8 @@ static const struct helptxt helptext[] = {
|
|||||||
"Set a CRL list for proxy"},
|
"Set a CRL list for proxy"},
|
||||||
{" --proxy-digest",
|
{" --proxy-digest",
|
||||||
"Use Digest authentication on the proxy"},
|
"Use Digest authentication on the proxy"},
|
||||||
{" --proxy-header <header>",
|
{" --proxy-header <header/@file>",
|
||||||
"Pass custom header LINE to proxy"},
|
"Pass custom header(s) to proxy"},
|
||||||
{" --proxy-insecure",
|
{" --proxy-insecure",
|
||||||
"Do HTTPS proxy connections without verifying the proxy"},
|
"Do HTTPS proxy connections without verifying the proxy"},
|
||||||
{" --proxy-key <key>",
|
{" --proxy-key <key>",
|
||||||
@ -352,6 +352,8 @@ static const struct helptxt helptext[] = {
|
|||||||
"Set the remote file's time on the local output"},
|
"Set the remote file's time on the local output"},
|
||||||
{"-X, --request <command>",
|
{"-X, --request <command>",
|
||||||
"Specify request command to use"},
|
"Specify request command to use"},
|
||||||
|
{" --request-target",
|
||||||
|
"Specify the target for this request"},
|
||||||
{" --resolve <host:port:address>",
|
{" --resolve <host:port:address>",
|
||||||
"Resolve the host+port to this address"},
|
"Resolve the host+port to this address"},
|
||||||
{" --retry <num>",
|
{" --retry <num>",
|
||||||
@ -400,8 +402,6 @@ static const struct helptxt helptext[] = {
|
|||||||
"Use SSLv3"},
|
"Use SSLv3"},
|
||||||
{" --stderr",
|
{" --stderr",
|
||||||
"Where to redirect stderr"},
|
"Where to redirect stderr"},
|
||||||
{" --strip-path-slash",
|
|
||||||
"Strip off the first slash of the path"},
|
|
||||||
{" --suppress-connect-headers",
|
{" --suppress-connect-headers",
|
||||||
"Suppress proxy CONNECT response headers"},
|
"Suppress proxy CONNECT response headers"},
|
||||||
{" --tcp-fastopen",
|
{" --tcp-fastopen",
|
||||||
|
@ -972,8 +972,7 @@ static CURLcode operate_do(struct GlobalConfig *global,
|
|||||||
#endif /* !CURL_DISABLE_PROXY */
|
#endif /* !CURL_DISABLE_PROXY */
|
||||||
|
|
||||||
my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L);
|
my_setopt(curl, CURLOPT_FAILONERROR, config->failonerror?1L:0L);
|
||||||
my_setopt(curl, CURLOPT_STRIP_PATH_SLASH,
|
my_setopt(curl, CURLOPT_REQUEST_TARGET, config->request_target);
|
||||||
config->strip_path_slash?1L:0L);
|
|
||||||
my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L);
|
my_setopt(curl, CURLOPT_UPLOAD, uploadfile?1L:0L);
|
||||||
my_setopt(curl, CURLOPT_DIRLISTONLY, config->dirlistonly?1L:0L);
|
my_setopt(curl, CURLOPT_DIRLISTONLY, config->dirlistonly?1L:0L);
|
||||||
my_setopt(curl, CURLOPT_APPEND, config->ftp_append?1L:0L);
|
my_setopt(curl, CURLOPT_APPEND, config->ftp_append?1L:0L);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<keywords>
|
<keywords>
|
||||||
HTTP
|
HTTP
|
||||||
HTTP GET
|
HTTP GET
|
||||||
--strip-path-slash
|
--request-target
|
||||||
</keywords>
|
</keywords>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
@ -32,10 +32,10 @@ Funny-head: yesyes
|
|||||||
http
|
http
|
||||||
</server>
|
</server>
|
||||||
<name>
|
<name>
|
||||||
HTTP GET special path with --strip-path-slash
|
HTTP GET special path with --request-target
|
||||||
</name>
|
</name>
|
||||||
<command>
|
<command>
|
||||||
--strip-path-slash "http://%HOSTIP:%HTTPPORT/XXX" -H "Testno: 1298"
|
--request-target "XXX" "http://%HOSTIP:%HTTPPORT/" -H "Testno: 1298"
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<info>
|
<info>
|
||||||
<keywords>
|
<keywords>
|
||||||
HTTP
|
HTTP
|
||||||
--strip-path-slash
|
--request-target
|
||||||
</keywords>
|
</keywords>
|
||||||
</info>
|
</info>
|
||||||
|
|
||||||
@ -31,10 +31,10 @@ Funny-head: yesyes
|
|||||||
http
|
http
|
||||||
</server>
|
</server>
|
||||||
<name>
|
<name>
|
||||||
Send "OPTIONS *" with --strip-path-slash
|
Send "OPTIONS *" with --request-target
|
||||||
</name>
|
</name>
|
||||||
<command>
|
<command>
|
||||||
--strip-path-slash -X OPTIONS http://%HOSTIP:%HTTPPORT/* -H "Testno: 1299"
|
--request-target "*" -X OPTIONS http://%HOSTIP:%HTTPPORT/ -H "Testno: 1299"
|
||||||
</command>
|
</command>
|
||||||
</client>
|
</client>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user