if 'HTTPS_PROXY' in os.environ:
self.proxies['https'] = os.environ['HTTPS_PROXY']
- self.data, self._enc_data = self._encode_params(data)
- self.params, self._enc_params = self._encode_params(params)
- self.files, self._enc_files = self._encode_files(files)
+ self.data = data
+ self.params = params
+ self.files = files
#: :class:`Response <Response>` instance, containing
#: content and metadata of HTTP Response, once :attr:`sent <send>`.
Will successfully encode parameters when passed as a dict or a list of
2-tuples. Order is retained if data is a list of 2-tuples but abritrary
if parameters are supplied as a dict.
-
- If the data supplied contains parameters, encodes each parameter in it,
- and returns a list of tuples containing the encoded parameters, and a
- urlencoded version of that.
-
- Otherwise, assumes the data is already encoded appropriately, and
- returns it twice.
"""
if isinstance(data, bytes):
- return data, data
+ return data
if isinstance(data, str):
- return data, data
+ return data
elif hasattr(data, '__iter__'):
try:
dict(data)
result.append(
(k.encode('utf-8') if isinstance(k, str) else k,
v.encode('utf-8') if isinstance(v, str) else v))
- return result, urlencode(result, doseq=True)
+ return urlencode(result, doseq=True)
else:
- return data, data
+ return data
def _encode_files(self, files):
if (not files) or isinstance(self.data, str):
- return None, None
+ return None
try:
fields = self.data.copy()
(body, content_type) = encode_multipart_formdata(fields)
- return files, (body, content_type)
+ return (body, content_type)
@property
def full_url(self):
url = (urlunparse([scheme, netloc, path, params, query, fragment]))
- if self._enc_params:
+ enc_params = self._encode_params(self.params)
+ if enc_params:
if urlparse(url).query:
- url = '%s&%s' % (url, self._enc_params)
+ url = '%s&%s' % (url, enc_params)
else:
- url = '%s?%s' % (url, self._enc_params)
+ url = '%s?%s' % (url, enc_params)
if self.config.get('encode_uri', True):
url = requote_uri(url)
# Multi-part file uploads.
if self.files:
- (body, content_type) = self._enc_files
+ (body, content_type) = self._encode_files(self.files)
else:
if self.data:
- body = self._enc_data
+ body = self._encode_params(self.data)
if isinstance(self.data, str):
content_type = None
else: