This change allows the proxy dict to be have entries of the form
{'<scheme>://<hostname>': '<proxy>'}. Host-specific proxies will be used in
preference to the scheme-specific proxies (i.e., proxy dict entries with keys
like 'http' or 'https').
Fixes#2722
If the netrc file exists but cannot be parsed or read, get_netrc_auth
silently fails.
Add a new argument `ignore_errors` which when set to False will cause
any parse/permission errors to be raised to the caller. The default
value is True, which means the default behavior is unchanged.
Fixes#2654
Change-Id: I7436aaaf593178673ab84fd9e7ab4bcb0e3fe75e
It seems convenient to include the URL in the error message in case you
get an unexpected error.
E.g.:
In [1]: import requests
In [2]: resp = requests.get('http://www.google.com/eofdfdfdfdfd')
In [3]: resp
Out[3]: <Response [404]>
In [4]: resp.raise_for_status()
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-4-00e7077cfb5b> in <module>()
----> 1 resp.raise_for_status()
/Users/marca/dev/git-repos/requests/requests/models.py in raise_for_status(self)
835
836 if http_error_msg:
--> 837 raise HTTPError(http_error_msg, response=self)
838
839 def close(self):
HTTPError: 404 Client Error: Not Found for url: http://www.google.com/eofdfdfdfdfd
Example:
here are Set-Cookie list:
```python
sclst = ['dwac_bcIBMiaagZmkYaaadeYtg11eVR=j9jHdmPjUhgDOhyH9f89X4lQgehEmflVyeA%3D|dw-only|||CNY|false|Asia%2FShanghai|true; Path=/',
'sid=j9jHdmPjUhgDOhyH9f89X4lQgehEmflVyeA; Path=/',
'geoLocation=CN; Path=/',
'dwpersonalization_fae107a9dd0fc32ed99532ec1977f31f=bc8sEiaagZqRsaaadk8XoNTL8h20150506; Expires=Sun, 14-Jun-2015 10:37:07 GMT; Path=/',
'dwanonymous_fae107a9dd0fc32ed99532ec1977f31f=abjpA8kng31LjPp8ZEERDT4XVg; Version=1; Comment="Demandware anonymous cookie for site Sites-abercrombie_cn-Site"; Max-Age=15552000; Expires=Tue, 10-Nov-2015 10:37:07 GMT; Path=/',
'myStore=91156; Path=/',
'AF_PREF=en_CN; Path=/',
'dwsid=MiHJy3KYZKDcN0lZg4HS1zSpj1VV4s_tFu39ar0KXNpAx9aX8X2LlvZQ9m5fOOknb6QXtmmukHcOjmivYf31hg==; path=/; HttpOnly']
```
```python
for sc in sclst:
C = Cookie.SimpleCookie(sc)
for morsel in C.values():
cookie = requests.cookies.morsel_to_cookie(morsel)
cookiejar.set_cookie(cookie)
```
Then, exception occured
```shell
File "/Library/Python/2.7/site-packages/requests/cookies.py", line 402, in morsel_to_cookie
expires = time.time() + morsel['max-age']
TypeError: unsupported operand type(s) for +: 'float' and 'str'
```
As Cookie.SimpleCookie is in STL, should `morsel_to_cookie` check the type of `max-age`? On the other hand, if **max-age** can not be converted to float, it's illegal obviously.
Do not require that hooks be passed as an empty list to
PreparedRequest.prepare. In the event hooks is None in prepare or
prepare_hooks, use an empty list as a default.
Related to #2552