24. Curl

This method is to create http requests from curl command. If you want to know more about curl, please click the Curl document.

24.1 How to enter (a) command(s)

Create a Test Plan From a cURL Command

1. To create an import from a cURL, open the ‘Tools’ menu and click ‘Import from cURL’.
Figure 1 - The menu where curl is located
Figure 1 - The menu where curl is located
2.There are two ways to enter the curl command line. Firstly, we can enter it manually. Secondly, we can import a file containing the curl command line. This tool supports input of multiple curl command lines at the same time.
Figure 2.1 - Enter curl command in text panel
Figure 2.1 - Enter curl command in text panel
Figure 2.2 - Enter curl command from file
Figure 2.2 - Enter curl command from file
3.Then, click ‘Create HTTP Request’ button and a new HTTP Sample will be added to the Test Plan.
Figure 3 - result of Test Plan
Figure 3 - result of Test Plan

24.2 Curl options supported

-H, --header<header>:Extra header to use when getting a web page.

-X, --request <command>:Specifies a custom request method to use when communicating with the HTTP server.

--compressed:Request a compressed response using one of the algorithms curl supports, and return the uncompressed document.

-A, --user-agent <agent string >:Specify the User-Agent string to send to the HTTP server.

-b, --cookie <name=data>:Pass the data to the HTTP server as a cookie.

Sends the specified data in a POST request to the HTTP server. If this option is used more than once on the same command line, the data pieces specified will be merged together with a separating "&" character. Thus, using '-d name=daniel -d skill=lousy' would generate a POST chunk that looks like 'name=daniel&skill=lousy'.
  • -d,--data <data> --data-ascii <data> :use @ to upload the file
  • --data-binary <data>
  • --data-raw <data> : This posts data exactly as specified with no extra processing whatsoever. If you start the data with the character @, the rest should be a filename.
  • --data-urlencode <data> :This posts data, similar to the other --data options with the exception that this performs URL-encoding.
  • --data-raw <data> :This posts data similarly to --data but without the special interpretation of the @ character.
This lets curl emulate a filled-in form in which a user has pressed the submit button.
  • -F, --form <name=content> :use @ to upload the file
  • --form-string <name=content>

-u, --user <user:password >:Specify user and password to use for server authentication.

--basic,--digest:Tells curl to use HTTP authentication.

Tells curl to use the specified client certificate file when getting a file with HTTPS
  • --cacert <CA certificate>
  • --capath <CA certificate directory>
  • --ciphers <list of ciphers>
  • --cert-status
  • --cert-type <type>

-G, --get:put the post data in the url and use get to replace post.

--no-keepalive:Disables the use of keepalive messages on the TCP connection.

-e, --referer <URL>:Sends the "Referer Page" information to the HTTP server.

-L, --location:If the server reports that the requested page has moved to a different location this option will make curl redo the request on the new place.

-i, --include:Include the HTTP-header in the output.

--connect-timeout <seconds>:Maximum time in seconds that the connection to the server may take.

--keepalive-time <seconds>:This option sets the time a connection needs to remain idle before sending keepalive probes and the time between individual keepalive probes.

-m, --max-time <seconds>:Maximum time in seconds that you allow the whole operation to take.

-x, --proxy <[protocol://] [user:password@] proxyhost[:port]> :Use the specified HTTP proxy. If the port number is not specified, it is assumed at port 1080.

-U, --proxy-user <user:password>:Specify user and password to use for proxy authentication.

-k, --insecure:This option explicitly allows curl to perform "insecure" SSL connections and transfers.

--raw:When used, it disables all internal HTTP decoding of content or transfer encodings and instead makes them passed on unaltered,raw.

-I, --head:Fetch the HTTP-header only. HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document.

--interface <name>:Perform an operation using a specified interface. You can enter interface name, IP address or host name.

--proxy-ntlm/--proxy-negotiate:Tells curl to use HTTP basic/ntlm/Digest authentication when communicating with the given proxy.

--dns-servers <addresses>:Resolve host name over DOH.

--resolve <host:port:address>:Provide a custom address for a specific host and port pair.

--limit-rate <speed>:Specify the maximum transfer rate you want curl to use.

--max-redirs <num>:Set maximum number of redirections which may be followed.

--noproxy <no-proxy-list>:Comma-separated list of hosts which do not use a proxy, if one is specified.

24.3 Warning

When the command you entered is ignored or contains warning content, we will display warning in the comment section of Http Request.

Figure 1 -Warning
Figure 1 -Warning

24.4 Examples

Use cookie :curl -X POST "https://xxx.com" -b 'username=Tom;password=123456'

Use data :curl -X POST "https://xxx.com" --data 'fname=a&lname=b'

Use form :curl -X POST "https://xxx.com" -F 'lname=a' -F 'fname=b' -F 'c=@C:\Test\test.txt'

Use proxy :curl 'http://jmeter.apache.org/' -x 'https://aa:bb@example.com:8042'

Use autorization :curl "https://xxx.com" -u 'user:passwd' --basic

Use DNS :curl "https://xxx.com" --dns-servers '0.0.0.0,1.1.1.1'

Go to top