diff --git a/collect.services.yml b/collect.services.yml
index c5c9ef4..81a2e93 100644
--- a/collect.services.yml
+++ b/collect.services.yml
@@ -25,4 +25,4 @@ services:
     arguments: ['@request_stack', '@serializer', '@entity.manager', '@plugin.manager.collect.model']
   collect.fetch_web_resource:
     class: Drupal\collect\FetchWebResource
-    arguments: ['@http_client', '@entity.manager', '@plugin.manager.collect.model']
+    arguments: ['@http_client_factory', '@entity.manager', '@plugin.manager.collect.model']
diff --git a/src/FetchWebResource.php b/src/FetchWebResource.php
index f89c2b3..35c15b8 100644
--- a/src/FetchWebResource.php
+++ b/src/FetchWebResource.php
@@ -11,8 +11,9 @@ use Drupal\collect\Entity\Container;
 use Drupal\collect\Model\ModelManagerInterface;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Entity\EntityManagerInterface;
-use Drupal\Core\Http\Client;
+use Drupal\Core\Http\ClientFactory;
 use GuzzleHttp\Exception\RequestException;
+use GuzzleHttp\Psr7\Request;
 
 /**
  * Fetches a web resource into collect container.
@@ -30,11 +31,11 @@ class FetchWebResource {
   const MIMETYPE = 'application/json';
 
   /**
-   * The http client.
+   * The HTTP client to fetch the web resource with.
    *
-   * @var \Drupal\Core\Http\Client $httpClient
+   * @var \Drupal\Core\Http\ClientFactory $httpClientFactory
    */
-  protected $httpClient;
+  protected $httpClientFactory;
 
   /**
    * The entity manager service.
@@ -53,15 +54,15 @@ class FetchWebResource {
   /**
    * Set up a new FetchWebResource instance.
    *
-   * @param \Drupal\Core\Http\Client $http_client
-   *   The http client.
+   * @param \Drupal\Core\Http\ClientFactory $http_client_factory
+   *   A Guzzle client object.
    * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
    *    The entity manager service.
    * @param \Drupal\collect\Model\ModelManagerInterface $model_manager
    *    The injected model manager.
    */
-  public function __construct(Client $http_client, EntityManagerInterface $entity_manager, ModelManagerInterface $model_manager) {
-    $this->httpClient = $http_client;
+  public function __construct(ClientFactory $http_client_factory, EntityManagerInterface $entity_manager, ModelManagerInterface $model_manager) {
+    $this->httpClientFactory = $http_client_factory;
     $this->entityManager = $entity_manager;
     $this->modelManager = $model_manager;
   }
@@ -83,18 +84,19 @@ class FetchWebResource {
     if (!isset($schema_uri)) {
       $schema_uri = static::SCHEMA_URI;
     }
-
-    $request = $this->httpClient->createRequest('GET', $url, [
-      'headers' => [
-        'Accept' => $accept_header,
-        'Accept-Charset' => 'UTF-8, *'
-      ]
-    ]);
-    $request_headers = $request->getHeaders();
-
+    $options['headers'] = [
+      'Accept' => $accept_header,
+      'Accept-Charset' => 'UTF-8, *'
+    ];
+    $request = new Request('GET', $url, $options);
+    $http_client = $this->httpClientFactory->fromOptions();
     try {
-      // Get response.
-      $response = $this->httpClient->send($request);
+      // Send an HTTP request and get a response.
+      $response = $http_client->send($request);
+      // Get request headers.
+      foreach (array_merge($options['headers'], $http_client->getConfig('headers')) as $key => $value) {
+        $request_headers[$key] = [$value];
+      }
     }
     catch (RequestException $re) {
       if ($re->hasResponse()) {
