Hurl JVM is a Hurl client for the JVM platform, written in Kotlin.
Hurl JVM is available as a standalone jar, launchable in a shell (ex: java -jar hurl.jar test.hurl
).
Hurl JVM try to have the same functionality as the official Hurl client.
usage: java -jar hurl.jar file
--color Colorize output (not yet
implemented)
--compressed Request a compressed response
using one of the algorithms br,
gzip, deflate and automatically
decompress the content
--connect-timeout <SECONDS> Maximum time in seconds that you
allow Hurl’s connection to take.
See also -m, --max-time option.
--file-root <file> Specify the root directory for
file inclusions
-h,--help This help text
-i,--include Include HTTP headers in the
output
-k,--insecure Allow connections to SSL sites
without certs
-L,--location Follow redirect
-m,--max-time <SECONDS> Maximum time in seconds that you
allow a request/response to take.
This is the standard timeout.
See also --connect-timeout
option.
--no-color Do not colorize output (not yet
implemented)
-o,--output <file> Write output to <file> instead of
stdout
--to-entry <entry-number> Execute Hurl file to
<entry-number> (starting at 1).
Ignore the remaining of the file
-u,--user <user:password> Specify the user name and
password to use for server
authentication (currently only
Basic Authentication is
supported)
-V,--version Show version number and quit
-v,--verbose Make the operation more talkative
--variable <name=value> Define variable (example:
--variable answer=42)
-x,--proxy <[protocol://]host[:port]> Use proxy on given port, only
http proxy is supported
Hurl JVM need JDK 8 to be build against, and use Gradle.
To build the project:
./gradlew build
To test and produce a coverage report:
./gradlew test
./gradlew hurl-core:jacocoTestReport
- hurl-core: core modules, can be used as a library for building app using Hurl.
- hurl-cli: standalone CLI application for Hurl
- hurl-fmt: standalone CLI application for formatting Hurl files
implementation 'com.orange.ccmd:hurl-core:1.0.40'
implementation 'com.orange.ccmd:hurl:1.0.40'
implementation 'com.orange.ccmd:hurlfmt:1.0.40'
implementation("com.orange.ccmd:hurl-core:1.0.40")
implementation("com.orange.ccmd:hurl:1.0.40")
implementation("com.orange.ccmd:hurlfmt:1.0.40")
<dependency>
<groupId>com.orange.ccmd</groupId>
<artifactId>hurl-core</artifactId>
<version>1.0.40</version>
</dependency>
<dependency>
<groupId>com.orange.ccmd</groupId>
<artifactId>hurl</artifactId>
<version>1.0.40</version>
</dependency>
<dependency>
<groupId>com.orange.ccmd</groupId>
<artifactId>hurlfmt</artifactId>
<version>1.0.40</version>
</dependency>