Refactor PageResult creation.
diff --git a/pagination/http.go b/pagination/http.go
index cabcccd..1b3fe94 100644
--- a/pagination/http.go
+++ b/pagination/http.go
@@ -36,13 +36,19 @@
 		parsedBody = rawBody
 	}
 
+	return PageResultFromParsed(resp, parsedBody), err
+}
+
+// PageResultFromParsed constructs a PageResult from an HTTP response that has already had its
+// body parsed as JSON (and closed).
+func PageResultFromParsed(resp *http.Response, body interface{}) PageResult {
 	return PageResult{
 		Result: gophercloud.Result{
-			Body:   parsedBody,
+			Body:   body,
 			Header: resp.Header,
 		},
 		URL: *resp.Request.URL,
-	}, err
+	}
 }
 
 // Request performs an HTTP request and extracts the http.Response from the result.
diff --git a/rackspace/lb/v1/nodes/requests.go b/rackspace/lb/v1/nodes/requests.go
index b33d339..dc2d46c 100644
--- a/rackspace/lb/v1/nodes/requests.go
+++ b/rackspace/lb/v1/nodes/requests.go
@@ -119,14 +119,7 @@
 		return res
 	}
 
-	pr := pagination.PageResult{
-		Result: gophercloud.Result{
-			Body:   res.Body,
-			Header: resp.Header,
-		},
-		URL: *resp.Request.URL,
-	}
-
+	pr := pagination.PageResultFromParsed(resp, res.Body)
 	return CreateResult{pagination.SinglePageBase(pr)}
 }