def get_canonical_request(self, req, cano_headers, signed_headers):
url = urlparse(req.url)<EOL>path = self.amz_cano_path(url.path)<EOL>split = req.url.split('<STR_LIT:?>', <NUM_LIT:1>)<EOL>qs = split[<NUM_LIT:1>] if len(split) == <NUM_LIT:2> else '<STR_LIT>'<EOL>qs = self.amz_cano_querystring(qs)<EOL>payload_hash = req.headers['<STR_LIT>']<EOL>req_parts = [req.method.upper(), path, qs, cano_headers,<EOL>signed_headers, payload_hash]<EOL>cano_req = '<STR_LIT:\n>'.join(req_parts)<EOL>return cano_req<EOL>
Create the AWS authentication Canonical Request string.

req            -- Requests PreparedRequest object. Should already
                  include an x-amz-content-sha256 header
cano_headers   -- Canonical Headers section of Canonical Request, as
                  returned by get_canonical_headers()
signed_headers -- Signed Headers, as returned by
                  get_canonical_headers()