mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
fix params support
This commit is contained in:
+4
-4
@@ -257,7 +257,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
||||
pass
|
||||
|
||||
# Support for unicode domain names and paths.
|
||||
scheme, netloc, path, params, query, fragment = urlparse(url)
|
||||
scheme, netloc, path, _params, query, fragment = urlparse(url)
|
||||
|
||||
if not scheme:
|
||||
raise MissingSchema("Invalid URL %r: No schema supplied" % url)
|
||||
@@ -278,8 +278,8 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
||||
netloc = netloc.encode('utf-8')
|
||||
if isinstance(path, str):
|
||||
path = path.encode('utf-8')
|
||||
if isinstance(params, str):
|
||||
params = params.encode('utf-8')
|
||||
if isinstance(_params, str):
|
||||
_params = _params.encode('utf-8')
|
||||
if isinstance(query, str):
|
||||
query = query.encode('utf-8')
|
||||
if isinstance(fragment, str):
|
||||
@@ -292,7 +292,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
||||
else:
|
||||
query = enc_params
|
||||
|
||||
url = requote_uri(urlunparse([scheme, netloc, path, params, query, fragment]))
|
||||
url = requote_uri(urlunparse([scheme, netloc, path, _params, query, fragment]))
|
||||
self.url = url
|
||||
|
||||
def prepare_headers(self, headers):
|
||||
|
||||
+34
-1
@@ -186,7 +186,7 @@ class Session(SessionRedirectMixin):
|
||||
params=None,
|
||||
data=None,
|
||||
headers=None,
|
||||
cookies=None,
|
||||
cookies=None or {},
|
||||
files=None,
|
||||
auth=None,
|
||||
timeout=None,
|
||||
@@ -198,6 +198,39 @@ class Session(SessionRedirectMixin):
|
||||
verify=None,
|
||||
cert=None):
|
||||
|
||||
|
||||
# merge session cookies into passed-in ones
|
||||
dead_cookies = None
|
||||
# passed-in cookies must become a CookieJar:
|
||||
if not isinstance(cookies, cookielib.CookieJar):
|
||||
cookies = cookiejar_from_dict(cookies)
|
||||
# support unsetting cookies that have been passed in with None values
|
||||
# this is only meaningful when `cookies` is a dict ---
|
||||
# for a real CookieJar, the client should use session.cookies.clear()
|
||||
if cookies is not None:
|
||||
dead_cookies = [name for name in cookies if cookies[name] is None]
|
||||
# merge the session's cookies into the passed-in cookies:
|
||||
for cookie in self.cookies:
|
||||
cookies.set_cookie(cookie)
|
||||
# remove the unset cookies from the jar we'll be using with the current request
|
||||
# (but not from the session's own store of cookies):
|
||||
if dead_cookies is not None:
|
||||
for name in dead_cookies:
|
||||
remove_cookie_by_name(cookies, name)
|
||||
|
||||
# Merge local kwargs with session kwargs.
|
||||
for attr in self.__attrs__:
|
||||
# we already merged cookies:
|
||||
if attr == 'cookies':
|
||||
continue
|
||||
|
||||
session_val = getattr(self, attr, None)
|
||||
local_val = locals().get(attr)
|
||||
locals()[attr] = merge_kwargs(local_val, session_val)
|
||||
|
||||
|
||||
headers = merge_kwargs(headers, self.headers)
|
||||
|
||||
req = Request()
|
||||
req.method = method
|
||||
req.url = url
|
||||
|
||||
Reference in New Issue
Block a user