How to read a web page, image or a file from a Drupal 8 module ?
Question
Use drupal 8 httpClient to read URL.
// Drupal httpClient.
$http = \Drupal::httpClient();
$url = 'http://example.com/';
Example:
$options = array();
$result = $http->request('get', $url, $options);
Get Headers / Get a header value
$headers = $result->getHeaders();
$values = $result->getHeader($name);//Cache-Control, Content-Type, Etag, Expires, Last-Modified, Server, Vary, X-Cache ...
$dates = $result->getHeader('Date');
Get the body text/File/Image ....
$body_class = $result->getBody(); //The class
$body_data = $result->getBody()->getContents(); //The data
Get Status
$status_code = $result->getStatusCode();// Code
$status_text = $result->getReasonPhrase();// Status Reason Phrase text
Asynchronous Url Call
You can use the methode requestAsync(), if you need to call a url asynchronously (for ex background process).
$result = $http->requestAsync('get', $url);
Comments