Changed to a command pattern for requests.
diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 5a0ba33..9ba279d 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -28,6 +28,7 @@
 import uritemplate
 import urllib
 import urlparse
+from apiclient.http import HttpRequest
 
 try:
   import simplejson
@@ -228,10 +229,8 @@
       url = urlparse.urljoin(self._baseUrl, expanded_url + query)
 
       logging.info('URL being requested: %s' % url)
-      resp, content = self._http.request(
-          url, method=httpMethod, headers=headers, body=body)
-
-      return self._model.response(resp, content)
+      return HttpRequest(self._http, url, method=httpMethod, body=body,
+                         headers=headers, postproc=self._model.response)
 
     docs = ['A description of how to use this function\n\n']
     for arg in argmap.iterkeys():
@@ -271,7 +270,8 @@
       logging.info('URL being requested: %s' % url)
       resp, content = self._http.request(url, method='GET', headers=headers)
 
-      return self._model.response(resp, content)
+      return HttpRequest(self._http, url, method='GET',
+                         headers=headers, postproc=self._model.response)
 
     setattr(theclass, methodName, method)
 
diff --git a/functional_tests/test_services.py b/functional_tests/test_services.py
index d291dd3..5a9fa23 100644
--- a/functional_tests/test_services.py
+++ b/functional_tests/test_services.py
@@ -26,6 +26,6 @@
     max_results = 2
     activities = buzz.activities().list(userId='googlebuzz', scope='@self',
                                         max_comments=max_results*2 ,max_liked=max_results*3,
-                                        max_results=max_results)['items']
+                                        max_results=max_results).execute()['items']
     activity_count = len(activities)
     self.assertEquals(max_results, activity_count)
diff --git a/samples/appengine/main.py b/samples/appengine/main.py
index 14c6593..2116562 100755
--- a/samples/appengine/main.py
+++ b/samples/appengine/main.py
@@ -58,7 +58,8 @@
       http = c.credentials.authorize(http)
       p = build("buzz", "v1", http=http)
       activities = p.activities()
-      activitylist = activities.list(scope='@consumption', userId='@me')
+      activitylist = activities.list(scope='@consumption',
+                                     userId='@me').execute()
       logging.info(activitylist)
       path = os.path.join(os.path.dirname(__file__), 'welcome.html')
       logout = users.create_logout_url('/')
diff --git a/samples/cmdline/buzz.py b/samples/cmdline/buzz.py
index de871eb..60c7d50 100644
--- a/samples/cmdline/buzz.py
+++ b/samples/cmdline/buzz.py
@@ -28,7 +28,7 @@
 
   p = build("buzz", "v1", http=http)
   activities = p.activities()
-  activitylist = activities.list(scope='@self', userId='@me')
+  activitylist = activities.list(scope='@self', userId='@me').execute()
   print activitylist['items'][0]['title']
   activities.insert(userId='@me', body={
     'title': 'Testing insert',
@@ -36,7 +36,7 @@
       'content': u'Just a short note to show that insert is working. ☄',
       'type': 'note'}
     }
-  )
+  ).execute()
 
 if __name__ == '__main__':
   main()
diff --git a/samples/cmdline/moderator.py b/samples/cmdline/moderator.py
index 3bca162..36f354a 100644
--- a/samples/cmdline/moderator.py
+++ b/samples/cmdline/moderator.py
@@ -27,7 +27,7 @@
   http = credentials.authorize(http)
 
   p = build("moderator", "v1", http=http)
-  print p.submissions().list(seriesId="7035", topicId="64")
+  print p.submissions().list(seriesId="7035", topicId="64").execute()
 
 if __name__ == '__main__':
   main()