title: Problems with the Google API PHP simple-query example
body: <p>I am trying to get the Google simple-query example (off GitHub) working, unfortunately with a definite lack of success ... all I get is an exit code of 255.</p>
  
  <p>I established that the problem was in the call to the Google Server, so added an exception handler to the code. The program now looks like this:</p>
  
  <pre><code>&lt;?php
      /*
       * Copyright 2013 Google Inc.
       *
       * Licensed under the Apache License, Version 2.0 (the "License");
       * you may not use this file except in compliance with the License.
       * You may obtain a copy of the License at
       *
       *     http://www.apache.org/licenses/LICENSE-2.0
       *
       * Unless required by applicable law or agreed to in writing, software
       * distributed under the License is distributed on an "AS IS" BASIS,
       * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
       * See the License for the specific language governing permissions and
       * limitations under the License.
       */
      include_once "templates/base.php";
      echo pageHeader("Simple API Access");
  
      /************************************************
      Make a simple API request using a key. In this
      example we're not making a request as a
      specific user, but simply indicating that the
      request comes from our application, and hence
      should use our quota, which is higher than the
      anonymous quota (which is limited per IP).
       ************************************************/
      set_include_path("../src/" . PATH_SEPARATOR . get_include_path());
      require_once 'Google/Client.php';
      require_once 'Google/Service/Books.php';
  
      /************************************************
      We create the client and set the simple API
      access key. If you comment out the call to
      setDeveloperKey, the request may still succeed
      using the anonymous quota.
       ************************************************/
      $client = new Google_Client();
      $client-&gt;setApplicationName("Client_Library_Examples");
      $apiKey = "******************************************";
      if ($apiKey == '&lt;YOUR_API_KEY&gt;') {
          echo missingApiKeyWarning();
      }
      $client-&gt;setDeveloperKey($apiKey);
      $service = new Google_Service_Books($client);
  
      /************************************************
      We make a call to our service, which will
      normally map to the structure of the API.
      In this case $service is Books API, the
      resource is volumes, and the method is
      listVolumes. We pass it a required parameters
      (the query), and an array of named optional
      parameters.
       ************************************************/
      $optParams = array('filter' =&gt; 'free-ebooks');
  
  
      // next line replaced with an exception handling block
      // $results = $service-&gt;volumes-&gt;listVolumes('Henry David Thoreau', $optParams);
  
      try{
          $results = $service-&gt;volumes-&gt;listVolumes('Henry David Thoreau', $optParams);
          var_dump($results);
      } catch (Exception $e) {
          echo "call error: " .$e-&gt;getMessage()."\n";
          echo $e-&gt;getTraceAsString()."\n";
      }
  
      /************************************************
      This call returns a list of volumes, so we
      can iterate over them as normal with any
      array.
      Some calls will return a single item which we
      can immediately use. The individual responses
      are typed as Google_Service_Books_Volume, but
      can be treated as an array.
       ***********************************************/
      echo "&lt;h3&gt;Results Of Call:&lt;/h3&gt;";
  
      // update to code (off StackOverflow)
  
      //foreach ($results as $item) {
      //  echo $item['volumeInfo']['title'], "&lt;br /&gt; \n";
      //}
  
      foreach($results-&gt;getItems() as $item){
          echo $item-&gt;volumeInfo-&gt;getTitle(), "&lt;br /&gt; \n";
      }
  
      /************************************************
      This is an example of deferring a call.
       ***********************************************/
      //$client-&gt;setDefer(true);
      //$optParams = array('filter' =&gt; 'free-ebooks');
      //$request = $service-&gt;volumes-&gt;listVolumes('Henry David Thoreau', $optParams);
      //$results = $client-&gt;execute($request);
      //
      //echo "&lt;h3&gt;Results Of Deferred Call:&lt;/h3&gt;";
      //foreach ($results as $item) {
      //  echo $item['volumeInfo']['title'], "&lt;br /&gt; \n";
      //}
      //
      echo pageFooter(__FILE__);
  </code></pre>
  
  <p>The error trace is as follows:</p>
  
  <pre><code>   call error: HTTP Error: Unable to connect: '0'
  #0 C:\srv\GoogleApi\Google\IO\Abstract.php(117): 
     Google_IO_Stream-&gt;executeRequest(Object(Google_Http_Request))
  #1 C:\srv\GoogleApi\Google\Http\REST.php(42):
     Google_IO_Abstract-&gt;makeRequest(Object(Google_Http_Request))
  #2 C:\srv\GoogleApi\Google\Client.php(499): 
     Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
  #3 C:\srv\GoogleApi\Google\Service\Resource.php(195): 
     Google_Client-&gt;execute(Object(Google_Http_Request))
  #4 C:\srv\GoogleApi\Google\Service\Books.php(2304): 
     Google_Service_Resource-&gt;call('list', Array, 'Google_Service_...')
  #5 C:\srv\GoogleApi\simple-query.php(60): 
     Google_Service_Books_Volumes_Resource-&gt;listVolumes('Henry David Tho...', Array)
  #6 {main}
  
  &lt;h3&gt;Results Of Call:&lt;/h3&gt;
  Process finished with exit code 255
  </code></pre>
  
  <p>Any assistance would be appreciated.</p>
  
  <p>NB: It is possible that this is simply an authentication issue. I am a remote worker without access to the Google Console, so must rely on the boss who swears that he has provided the correct key !</p>