diff --git a/client/src/Plugin/QueueWorker/CollectClientQueueWorker.php b/client/src/Plugin/QueueWorker/CollectClientQueueWorker.php
index d1a35d8..37d84be 100644
--- a/client/src/Plugin/QueueWorker/CollectClientQueueWorker.php
+++ b/client/src/Plugin/QueueWorker/CollectClientQueueWorker.php
@@ -16,10 +16,9 @@ use Drupal\Core\Queue\QueueWorkerBase;
 use Drupal\Core\Queue\SuspendQueueException;
 use GuzzleHttp\ClientInterface;
 use GuzzleHttp\Exception\RequestException;
-use GuzzleHttp\Message\ResponseInterface;
+use Psr\Http\Message\ResponseInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\Serializer\SerializerInterface;
 
 /**
@@ -263,7 +262,7 @@ class CollectClientQueueWorker extends QueueWorkerBase implements ContainerFacto
    *
    * @param string $cache_key
    *   The entity cache key.
-   * @param \GuzzleHttp\Message\ResponseInterface $response
+   * @param \Psr\Http\Message\ResponseInterface $response
    *   The response.
    */
   protected function cacheUuid($cache_key, ResponseInterface $response) {
@@ -282,8 +281,12 @@ class CollectClientQueueWorker extends QueueWorkerBase implements ContainerFacto
    */
   protected function parseResponse(ResponseInterface $response, $property) {
     try {
+      if (!$body = $response->getBody()) {
+        return FALSE;
+      }
+
       // Decode received data.
-      $json = $response->json();
+      $json = json_decode($body->getContents(), TRUE);
 
       if ($property == 'uuid') {
         return isset($json['data'][$property]) ? $json['data'][$property] : FALSE;
diff --git a/client/tests/src/Unit/Plugin/QueueWorker/QueueWorkerTest.php b/client/tests/src/Unit/Plugin/QueueWorker/QueueWorkerTest.php
index 6dca1e9..43008f5 100644
--- a/client/tests/src/Unit/Plugin/QueueWorker/QueueWorkerTest.php
+++ b/client/tests/src/Unit/Plugin/QueueWorker/QueueWorkerTest.php
@@ -71,7 +71,7 @@ class QueueWorkerTest extends UnitTestCase {
   protected function setUp() {
     $this->pluginManager = $this->getMock('Drupal\Component\Plugin\PluginManagerInterface');
     $this->logger = $this->getMock('Drupal\Core\Logger\LoggerChannelInterface');
-    $this->httpClient = $this->getMock('GuzzleHttp\ClientInterface');
+    $this->httpClient = $this->getMock('GuzzleHttp\Client', ['post']);
     $this->serializer = $this->getMock('\Symfony\Component\Serializer\SerializerInterface');
     $this->config = $this->getMockBuilder('Drupal\Core\Config\Config')
       ->disableOriginalConstructor()
@@ -215,7 +215,7 @@ EOF;
     );
     $url = 'http://example.com/collect/api/v1/submissions';
     $location = 'http://server.collect.dev/collect/api/v1/submissions/f67c88c9-1608-4f47-8291-4e35411af61f';
-    $response = $this->getMock('GuzzleHttp\Message\ResponseInterface');
+    $response = $this->getMock('Psr\Http\Message\ResponseInterface');
     $this->httpClient->expects($this->once())
       ->method('post')
       ->with($url, $options)
diff --git a/src/FetchWebResource.php b/src/FetchWebResource.php
index f89c2b3..ea18e20 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 GuzzleHttp\ClientInterface;
 use GuzzleHttp\Exception\RequestException;
+use GuzzleHttp\Psr7\Request;
 
 /**
  * Fetches a web resource into collect container.
@@ -32,7 +33,7 @@ class FetchWebResource {
   /**
    * The http client.
    *
-   * @var \Drupal\Core\Http\Client $httpClient
+   * @var \GuzzleHttp\ClientInterface
    */
   protected $httpClient;
 
@@ -53,14 +54,14 @@ class FetchWebResource {
   /**
    * Set up a new FetchWebResource instance.
    *
-   * @param \Drupal\Core\Http\Client $http_client
-   *   The http client.
+   * @param \GuzzleHttp\ClientInterface $http_client
+   *    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) {
+  public function __construct(ClientInterface $http_client, EntityManagerInterface $entity_manager, ModelManagerInterface $model_manager) {
     $this->httpClient = $http_client;
     $this->entityManager = $entity_manager;
     $this->modelManager = $model_manager;
@@ -84,16 +85,16 @@ class FetchWebResource {
       $schema_uri = static::SCHEMA_URI;
     }
 
-    $request = $this->httpClient->createRequest('GET', $url, [
-      'headers' => [
-        'Accept' => $accept_header,
-        'Accept-Charset' => 'UTF-8, *'
-      ]
+    // Create a new GET request.
+    $request = new Request('GET', $url, [
+      'Accept' => $accept_header,
+      'Accept-Charset' => 'UTF-8, *'
     ]);
+    // Get request headers.
     $request_headers = $request->getHeaders();
 
     try {
-      // Get response.
+      // Send a request to the server and get a response.
       $response = $this->httpClient->send($request);
     }
     catch (RequestException $re) {
