HTTP Client

The class http.Client implements a basic HTTP client. It is intended to encapsulate state that is persistent across connections, such as cookies and persistent connections. None of this functionality is, however, implemented currently.

The http.Client class contains the following members:

The library also provides a protocol, http.HttpProtocol that allows representing HTTP and HTTPS URLs. The library also provides convenience methods for creating the protocol:

To store query parameters, the library also extends the core.io.Url class with http.QueryUrl. It behaves as the core.io.Url class but also stores query parameters in its parameters member. It also allows adding parameters using the & operator as shown below.

For example, this allows fetching data through HTTP as follows:

Url url = httpsUrl("storm-lang.org") / "index.html" & QueryParam("id", "12");
print(url.toS); // Prints: https://storm-lang.org/index.html?id=12
Str data = url.readAllText();
print(data);    // Prints the raw HTML.

Note that all path components are escaped properly internally. Printing Urls with toS does not print them properly escaped. Using the format member will however give the escaped representation if you need it for something.