def __call__(self, r):
<EOL>log.debug("<STR_LIT>", r, self.client)<EOL>content_type = r.headers.get("<STR_LIT:Content-Type>", "<STR_LIT>")<EOL>if (<EOL>not content_type<EOL>and extract_params(r.body)<EOL>or self.client.signature_type == SIGNATURE_TYPE_BODY<EOL>):<EOL><INDENT>content_type = CONTENT_TYPE_FORM_URLENCODED<EOL><DEDENT>if not isinstance(content_type, unicode):<EOL><INDENT>content_type = content_type.decode("<STR_LIT:utf-8>")<EOL><DEDENT>is_form_encoded = CONTENT_TYPE_FORM_URLENCODED in content_type<EOL>log.debug(<EOL>"<STR_LIT>",<EOL>is_form_encoded or self.force_include_body,<EOL>)<EOL>if is_form_encoded:<EOL><INDENT>r.headers["<STR_LIT:Content-Type>"] = CONTENT_TYPE_FORM_URLENCODED<EOL>r.url, headers, r.body = self.client.sign(<EOL>unicode(r.url), unicode(r.method), r.body or "<STR_LIT>", r.headers<EOL>)<EOL><DEDENT>elif self.force_include_body:<EOL><INDENT>r.url, headers, r.body = self.client.sign(<EOL>unicode(r.url), unicode(r.method), r.body or "<STR_LIT>", r.headers<EOL>)<EOL><DEDENT>else:<EOL><INDENT>r.url, headers, _ = self.client.sign(<EOL>unicode(r.url), unicode(r.method), None, r.headers<EOL>)<EOL><DEDENT>r.prepare_headers(headers)<EOL>r.url = to_native_string(r.url)<EOL>log.debug("<STR_LIT>", r.url)<EOL>log.debug("<STR_LIT>", headers)<EOL>log.debug("<STR_LIT>", r.body)<EOL>return r<EOL>
Add OAuth parameters to the request.

        Parameters may be included from the body if the content-type is
        urlencoded, if no content type is set a guess is made.