/
HTTP client
HTTP client
As of Totara 13, Totara core provides an object-oriented HTTP client wrapper for making external requests.
The code is located in the following server/totara/core/classes/http/ folder.
In the example below the class is making use of the existing curl class defined in server/lib/filelib.php so will automatically make use of any proxy defined in Quick-access menu > Server > HTTP > Web proxy.
The class allows you to work with client/request/response objects in an object-oriented way:
use totara_core\http\clients\curl_client; use totara_core\http\request; use totara_core\http\method; $client = new curl_client(); $request = new request($url, method::POST, $postdata, $headers); // Alternative syntax: // $request = request::post($url, $postdata, $headers); $response = $client->execute($request); // Example methods available on response object: $true_or_false = $response->is_ok(); $json = $response->get_body_as_json(); $status_code = $response->get_http_code; $headers = $response->get_response_headers(); $specific_header = $response->get_response_header('header_name_as_string');
Clients can be extended to add use-case-specific functionality. The library also provides mock clients for testing in the /server/totara/core/classes/http/clients/ folder.
, multiple selections available,
Related content
Making external requests via a GraphQL client
Making external requests via a GraphQL client
More like this
Using the External GraphQL API
Using the External GraphQL API
More like this
Using our APIs
Using our APIs
More like this
Available APIs
Available APIs
More like this
Using the AJAX GraphQL API
Using the AJAX GraphQL API
More like this