def get_object2(self, mpath, path=None, accept="*/*"):
        """A lower-level version of `get_object` that returns the
        response object (which includes the headers).

        ...
        @returns (res, content) {2-tuple} `content` is None if `path` was
            provided
        """
        log.debug('GetObject %r', mpath)
        headers = {"Accept": accept}

        res, content = self._request(mpath, "GET", headers=headers)
        if res["status"] not in ("200", "304"):
            raise errors.MantaAPIError(res, content)
        if len(content) != int(res["content-length"]):
            raise errors.MantaError("content-length mismatch: expected %d, "
                                    "got %s" %
                                    (res["content-length"], content))
        if res.get("content-md5"):
            md5 = hashlib.md5(content)
            content_md5 = base64.b64encode(md5.digest()).decode("utf-8")
            if content_md5 != res["content-md5"]:
                raise errors.MantaError("content-md5 mismatch: expected %s, "
                                        "got %s" %
                                        (res["content-md5"], content_md5))
        if path is not None:
            f = io.open(path, 'wb')
            try:
                f.write(content)
            finally:
                f.close()
            return (res, None)
        else:
            return (res, content)