Argentum programs can interact with web servers:
using httpClient{ get, Response }
// The httpClient module always performs its operation asynchronously
// so the application needs to have a global state:
class App {}
app = App;
setMainObject(app);
// Perform request
get("https://aglang.org", app.&onFetched(r Response){
log("Result code={r.status}: response size={r.body.capacity()}");
// Quit from application
setMainObject(?App);
})The httpClient module features:
- It performs all operations on a separate thread.
- It uses
curl-multy, so multiple simultaneous requests work on a single thread sharing caches and resources. - If some listener dies, all its operations get cancelled automatically.
- The
httpClient_Requestobject allows to customize requests by adding different verbs, request headers etc. - The
httpClient_Responseobject allows to get access to response headers, status code, response body and all request data.
