rax objects unit test; fix for creating object content
diff --git a/openstack/objectstorage/v1/containers/requests.go b/openstack/objectstorage/v1/containers/requests.go
index 9bc73e7..f81b3ed 100644
--- a/openstack/objectstorage/v1/containers/requests.go
+++ b/openstack/objectstorage/v1/containers/requests.go
@@ -113,7 +113,7 @@
 
 	resp, err := perigee.Request("PUT", createURL(c, containerName), perigee.Options{
 		MoreHeaders: h,
-		OkCodes:     []int{201, 204},
+		OkCodes:     []int{201, 202, 204},
 	})
 	res.Header = resp.HttpResponse.Header
 	res.Err = err
diff --git a/openstack/objectstorage/v1/objects/requests.go b/openstack/objectstorage/v1/objects/requests.go
index 13d94f8..7d598b8 100644
--- a/openstack/objectstorage/v1/objects/requests.go
+++ b/openstack/objectstorage/v1/objects/requests.go
@@ -185,7 +185,6 @@
 // Create is a function that creates a new object or replaces an existing object.
 func Create(c *gophercloud.ServiceClient, containerName, objectName string, content io.Reader, opts CreateOptsBuilder) CreateResult {
 	var res CreateResult
-	var reqBody []byte
 
 	url := createURL(c, containerName, objectName)
 	h := c.Provider.AuthenticatedHeaders()
@@ -204,19 +203,13 @@
 		url += query
 	}
 
-	if content != nil {
-		reqBody = make([]byte, 0)
-		_, err := content.Read(reqBody)
-		if err != nil {
-			res.Err = err
-			return res
-		}
-	}
+	contentType := h["Content-Type"]
 
 	resp, err := perigee.Request("PUT", url, perigee.Options{
-		ReqBody:     reqBody,
+		ContentType: contentType,
+		ReqBody:     content,
 		MoreHeaders: h,
-		OkCodes:     []int{201},
+		OkCodes:     []int{201, 202},
 	})
 	res.Header = resp.HttpResponse.Header
 	res.Err = err