Fix str/unicode issue in batch media requests.

Reviewed in http://codereview.appspot.com/5569055/.
diff --git a/apiclient/http.py b/apiclient/http.py
index 4563bd1..c8a8cd4 100644
--- a/apiclient/http.py
+++ b/apiclient/http.py
@@ -513,7 +513,7 @@
     if request.body is None:
       body = body[:-2]
 
-    return status_line + body
+    return status_line.encode('utf-8') + body
 
   def _deserialize_response(self, payload):
     """Convert string into httplib2 response and content.
@@ -650,7 +650,7 @@
     boundary, _ = content.split(None, 1)
 
     # Prepend with a content-type header so FeedParser can handle it.
-    header = 'Content-Type: %s\r\n\r\n' % resp['content-type']
+    header = 'content-type: %s\r\n\r\n' % resp['content-type']
     for_parser = header + content
 
     parser = FeedParser()
diff --git a/tests/test_http.py b/tests/test_http.py
index cbbac61..4154310 100644
--- a/tests/test_http.py
+++ b/tests/test_http.py
@@ -198,6 +198,24 @@
     s = batch._serialize_request(request).splitlines()
     self.assertEquals(s, EXPECTED.splitlines())
 
+  def test_serialize_request_media_body(self):
+    batch = BatchHttpRequest()
+    f = open(datafile('small.png'))
+    body = f.read()
+    f.close()
+
+    request = HttpRequest(
+        None,
+        None,
+        'https://www.googleapis.com/someapi/v1/collection/?foo=bar',
+        method='POST',
+        body=body,
+        headers={'content-type': 'application/json'},
+        methodId=None,
+        resumable=None)
+    s = batch._serialize_request(request).splitlines()
+
+
   def test_serialize_request_no_body(self):
     batch = BatchHttpRequest()
     request = HttpRequest(