mirror of
https://github.com/moparisthebest/curl
synced 2024-11-13 21:15:08 -05:00
curl: add %{method} to the -w variables
Gets the CURLINFO_EFFECTIVE_METHOD from libcurl. Added test 1197 to verify.
This commit is contained in:
parent
d75e3ab74c
commit
f5e6907d52
@ -60,6 +60,9 @@ either IPv4 or IPv6 (Added in 7.29.0)
|
|||||||
.B local_port
|
.B local_port
|
||||||
The local port number of the most recently done connection (Added in 7.29.0)
|
The local port number of the most recently done connection (Added in 7.29.0)
|
||||||
.TP
|
.TP
|
||||||
|
.B method
|
||||||
|
The http method used in the most recent HTTP request (Added in 7.72.0)
|
||||||
|
.TP
|
||||||
.B num_connects
|
.B num_connects
|
||||||
Number of new connects made in the recent transfer. (Added in 7.12.3)
|
Number of new connects made in the recent transfer. (Added in 7.12.3)
|
||||||
.TP
|
.TP
|
||||||
|
@ -32,6 +32,8 @@
|
|||||||
static const struct writeoutvar variables[] = {
|
static const struct writeoutvar variables[] = {
|
||||||
{"url_effective", VAR_EFFECTIVE_URL, 0,
|
{"url_effective", VAR_EFFECTIVE_URL, 0,
|
||||||
CURLINFO_EFFECTIVE_URL, JSON_STRING},
|
CURLINFO_EFFECTIVE_URL, JSON_STRING},
|
||||||
|
{"method", VAR_EFFECTIVE_METHOD, 0,
|
||||||
|
CURLINFO_EFFECTIVE_METHOD, JSON_STRING},
|
||||||
{"http_code", VAR_HTTP_CODE, 0,
|
{"http_code", VAR_HTTP_CODE, 0,
|
||||||
CURLINFO_RESPONSE_CODE, JSON_LONG},
|
CURLINFO_RESPONSE_CODE, JSON_LONG},
|
||||||
{"response_code", VAR_HTTP_CODE, 0,
|
{"response_code", VAR_HTTP_CODE, 0,
|
||||||
@ -142,6 +144,13 @@ void ourWriteOut(CURL *curl, struct OutStruct *outs, const char *writeinfo)
|
|||||||
&& stringp)
|
&& stringp)
|
||||||
fputs(stringp, stream);
|
fputs(stringp, stream);
|
||||||
break;
|
break;
|
||||||
|
case VAR_EFFECTIVE_METHOD:
|
||||||
|
if((CURLE_OK == curl_easy_getinfo(curl,
|
||||||
|
CURLINFO_EFFECTIVE_METHOD,
|
||||||
|
&stringp))
|
||||||
|
&& stringp)
|
||||||
|
fputs(stringp, stream);
|
||||||
|
break;
|
||||||
case VAR_HTTP_CODE:
|
case VAR_HTTP_CODE:
|
||||||
if(CURLE_OK ==
|
if(CURLE_OK ==
|
||||||
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo))
|
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo))
|
||||||
|
@ -39,6 +39,7 @@ typedef enum {
|
|||||||
VAR_HTTP_CODE_PROXY,
|
VAR_HTTP_CODE_PROXY,
|
||||||
VAR_HEADER_SIZE,
|
VAR_HEADER_SIZE,
|
||||||
VAR_REQUEST_SIZE,
|
VAR_REQUEST_SIZE,
|
||||||
|
VAR_EFFECTIVE_METHOD,
|
||||||
VAR_EFFECTIVE_URL,
|
VAR_EFFECTIVE_URL,
|
||||||
VAR_CONTENT_TYPE,
|
VAR_CONTENT_TYPE,
|
||||||
VAR_NUM_CONNECTS,
|
VAR_NUM_CONNECTS,
|
||||||
|
@ -141,7 +141,7 @@ test1168 \
|
|||||||
test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 \
|
test1170 test1171 test1172 test1173 test1174 test1175 test1176 test1177 \
|
||||||
test1178 test1179 \
|
test1178 test1179 \
|
||||||
\
|
\
|
||||||
test1190 test1191 test1192 test1193 test1194 test1195 test1196 \
|
test1190 test1191 test1192 test1193 test1194 test1195 test1196 test1197 \
|
||||||
\
|
\
|
||||||
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
|
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
|
||||||
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
|
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
|
||||||
|
88
tests/data/test1197
Normal file
88
tests/data/test1197
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
<testcase>
|
||||||
|
<info>
|
||||||
|
<keywords>
|
||||||
|
HTTP
|
||||||
|
HTTP GET
|
||||||
|
followlocation
|
||||||
|
--write-out
|
||||||
|
</keywords>
|
||||||
|
</info>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Server-side
|
||||||
|
<reply>
|
||||||
|
<data nocheck="yes">
|
||||||
|
HTTP/1.1 302 OK swsbounce swsclose
|
||||||
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||||
|
Content-Length: 8
|
||||||
|
Connection: close
|
||||||
|
Content-Type: text/plain
|
||||||
|
Location: ./11970001
|
||||||
|
|
||||||
|
monster
|
||||||
|
</data>
|
||||||
|
<data1 nocheck="yes">
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||||
|
Content-Length: 15
|
||||||
|
Connection: close
|
||||||
|
Content-Type: text/plain; charset=us-ascii
|
||||||
|
|
||||||
|
bigger monster
|
||||||
|
</data1>
|
||||||
|
|
||||||
|
</reply>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Client-side
|
||||||
|
<client>
|
||||||
|
<server>
|
||||||
|
http
|
||||||
|
</server>
|
||||||
|
<name>
|
||||||
|
HTTP POST redirected to GET and --write-out method
|
||||||
|
</name>
|
||||||
|
<command>
|
||||||
|
http://%HOSTIP:%HTTPPORT/1197 -w "%{method}\n" -L -d "twinkle twinkle little star"
|
||||||
|
</command>
|
||||||
|
</client>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Verify data after the test has been "shot"
|
||||||
|
<verify>
|
||||||
|
<strip>
|
||||||
|
^User-Agent:.*
|
||||||
|
</strip>
|
||||||
|
<protocol>
|
||||||
|
POST /1197 HTTP/1.1
|
||||||
|
Host: %HOSTIP:%HTTPPORT
|
||||||
|
Accept: */*
|
||||||
|
Content-Length: 27
|
||||||
|
Content-Type: application/x-www-form-urlencoded
|
||||||
|
|
||||||
|
twinkle twinkle little starGET /11970001 HTTP/1.1
|
||||||
|
Host: %HOSTIP:%HTTPPORT
|
||||||
|
Accept: */*
|
||||||
|
|
||||||
|
</protocol>
|
||||||
|
|
||||||
|
<stdout>
|
||||||
|
HTTP/1.1 302 OK swsbounce swsclose
|
||||||
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||||
|
Content-Length: 8
|
||||||
|
Connection: close
|
||||||
|
Content-Type: text/plain
|
||||||
|
Location: ./11970001
|
||||||
|
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
||||||
|
Content-Length: 15
|
||||||
|
Connection: close
|
||||||
|
Content-Type: text/plain; charset=us-ascii
|
||||||
|
|
||||||
|
bigger monster
|
||||||
|
GET
|
||||||
|
</stdout>
|
||||||
|
|
||||||
|
</verify>
|
||||||
|
</testcase>
|
@ -61,7 +61,7 @@ Accept: */*
|
|||||||
|
|
||||||
</protocol>
|
</protocol>
|
||||||
<stdout nonewline="yes">
|
<stdout nonewline="yes">
|
||||||
{"url_effective":"http://%HOSTIP:%HTTPPORT/970","http_code":200,"response_code":200,"http_connect":0,"time_total":0.000013,"time_namelookup":0.000013,"time_connect":0.000013,"time_appconnect":0.000013,"time_pretransfer":0.000013,"time_starttransfer":0.000013,"size_header":4019,"size_request":4019,"size_download":445,"size_upload":0,"speed_download":13,"speed_upload":13,"content_type":"text/html","num_connects":1,"time_redirect":0.000013,"num_redirects":0,"ssl_verify_result":0,"proxy_ssl_verify_result":0,"filename_effective":"log/out970","remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"local_ip":"127.0.0.1","local_port":13,"http_version":"1.1","scheme":"HTTP","curl_version":"curl-unit-test-fake-version"}
|
{"url_effective":"http://%HOSTIP:%HTTPPORT/970","method":"GET","http_code":200,"response_code":200,"http_connect":0,"time_total":0.000013,"time_namelookup":0.000013,"time_connect":0.000013,"time_appconnect":0.000013,"time_pretransfer":0.000013,"time_starttransfer":0.000013,"size_header":4019,"size_request":4019,"size_download":445,"size_upload":0,"speed_download":13,"speed_upload":13,"content_type":"text/html","num_connects":1,"time_redirect":0.000013,"num_redirects":0,"ssl_verify_result":0,"proxy_ssl_verify_result":0,"filename_effective":"log/out970","remote_ip":"%HOSTIP","remote_port":%HTTPPORT,"local_ip":"127.0.0.1","local_port":13,"http_version":"1.1","scheme":"HTTP","curl_version":"curl-unit-test-fake-version"}
|
||||||
</stdout>
|
</stdout>
|
||||||
</verify>
|
</verify>
|
||||||
</testcase>
|
</testcase>
|
||||||
|
Loading…
Reference in New Issue
Block a user