Version 0.8 breaks something from 0.7.4

Something happened between version 0.7.4 and 0.8 that made requests stop working with two embedded devices that I have. One is an Axis video server and the other is a Digital-Loggers web power switch.

I’m using Python 2.6.6 and 2.7.2, under Windows and Linux.

I am able to connect to both devices using 0.7.4. When 0.8 is used it returns a 404 error when trying to connect to the Axis video server and it returns a very basic/simple web page when connection to the web power switch (it’s not the device’s login page but it does have a cookie from the device. Very strange.)

I spent a lot of time trying different options/settings in 0.8 but to no avail.

I have no trouble connecting to these devices using urllib2, htmllib or even wget and of course web browsers.

I’ve been concentrating on projects with these two devices so I haven’t had time to test either version of requests against other servers.

I’m sorry I can’t give you something more specific. I thought I should at least mention that I’ve run into a problem.

Mike


I also have problems with version 0.8.

At least _all_ Tumblr URLs are not working.

```

>>> a = requests.get('http://status.soundcloud.com/rss')
>>> a.content
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n    <head>\n        <link rel="icon" href="http://assets.tumblr.com/images/favicon.gif?2" type="image/gif"/>\n        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n        <meta name="robots" content="noindex"/>\n        <link rel="stylesheet" href="http://assets.tumblr.com/stylesheets/compressed/status_blue.css"\n        type="text/css" media="screen" charset="utf-8">\n        <title>We\'ll be back shortly</title>\n        <style type="text/css">\n            hr { display:none; }\n            address { display:none; }\n        </style>\n    </head>\n    <body onload="if (top != self) document.write(\'<body style=\\\'background:transparent;\\\'></body>\');">\n        <table height="100%" width="100%" id="tumbeasts">\n            <tr>\n                <td align="center" valign="middle">\n                    <div id="tumbeasts_503_container" style="display:none">\n                        <div class="tumbeasts_image">&nbsp;</div>\n\n                        <h1 id="l10n_title">We\'ll be back shortly</h1>\n\n                        <div class="sorry" style="width:480px;">\n                            <p id="l10n_feed_tumbeasts">\n                                We may have forgotten to feed the wild Tumbeasts that roam our datacenter,\n                                resulting in gnawing and/or mutiny. Animal control has been alerted.\n                            </p>\n                        </div>\n\n                        <div style="font:11px \'Lucida Grande\',Verdana,sans-serif; margin-top:18px; color:#344a5f;" id="l10n_artwork_credit">\n                            Artwork by <a href="http://theoatmeal.com/" target="_blank" style="color:#344a5f;">The Oatmeal</a>\n                        </div>\n                    </div>\n\n                    <div id="container">\n                        <div id="plain_503_container">\n                            <h1 id="l10n_title_2">We\'ll be back shortly</h1>\n        \n                            <div class="sorry">\n                                <p id="l10n_sorry">\n                                    Our servers are over capacity and certain pages may be temporarily unavailable.\n                                    We\'re incredibly sorry for the inconvenience.\n                                </p>\n                            </div>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </table>\n\n        <script type="text/javascript">\n            var window_width = parseInt(window.innerWidth ? window.innerWidth : document.body.clientWidth);\n        \n            if (window.location.hostname == \'www.tumblr.com\' && window_width > 510) {\n                document.write(\'<style type="text/css">#container { display:none; }</style>\');\n                document.getElementById(\'tumbeasts_503_container\').style.display = \'block\';\n            }\n        </script>\n        \n        <script type="text/javascript" language="javascript">var status_code = \'503\'</script>\n        <script type="text/javascript" language="javascript" src="http://assets.tumblr.com/languages/errors.js"></script>\n    </body>\n</html>\n'
>>> a = requests.get('http://status.soundcloud.com/')
>>> a.content
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"\n    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n    <head>\n        <link rel="icon" href="http://assets.tumblr.com/images/favicon.gif?2" type="image/gif"/>\n        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n        <meta name="robots" content="noindex"/>\n        <link rel="stylesheet" href="http://assets.tumblr.com/stylesheets/compressed/status_blue.css"\n        type="text/css" media="screen" charset="utf-8">\n        <title>We\'ll be back shortly</title>\n        <style type="text/css">\n            hr { display:none; }\n            address { display:none; }\n        </style>\n    </head>\n    <body onload="if (top != self) document.write(\'<body style=\\\'background:transparent;\\\'></body>\');">\n        <table height="100%" width="100%" id="tumbeasts">\n            <tr>\n                <td align="center" valign="middle">\n                    <div id="tumbeasts_503_container" style="display:none">\n                        <div class="tumbeasts_image">&nbsp;</div>\n\n                        <h1 id="l10n_title">We\'ll be back shortly</h1>\n\n                        <div class="sorry" style="width:480px;">\n                            <p id="l10n_feed_tumbeasts">\n                                We may have forgotten to feed the wild Tumbeasts that roam our datacenter,\n                                resulting in gnawing and/or mutiny. Animal control has been alerted.\n                            </p>\n                        </div>\n\n                        <div style="font:11px \'Lucida Grande\',Verdana,sans-serif; margin-top:18px; color:#344a5f;" id="l10n_artwork_credit">\n                            Artwork by <a href="http://theoatmeal.com/" target="_blank" style="color:#344a5f;">The Oatmeal</a>\n                        </div>\n                    </div>\n\n                    <div id="container">\n                        <div id="plain_503_container">\n                            <h1 id="l10n_title_2">We\'ll be back shortly</h1>\n        \n                            <div class="sorry">\n                                <p id="l10n_sorry">\n                                    Our servers are over capacity and certain pages may be temporarily unavailable.\n                                    We\'re incredibly sorry for the inconvenience.\n                                </p>\n                            </div>\n                        </div>\n                    </div>\n                </td>\n            </tr>\n        </table>\n\n        <script type="text/javascript">\n            var window_width = parseInt(window.innerWidth ? window.innerWidth : document.body.clientWidth);\n        \n            if (window.location.hostname == \'www.tumblr.com\' && window_width > 510) {\n                document.write(\'<style type="text/css">#container { display:none; }</style>\');\n                document.getElementById(\'tumbeasts_503_container\').style.display = \'block\';\n            }\n        </script>\n        \n        <script type="text/javascript" language="javascript">var status_code = \'503\'</script>\n        <script type="text/javascript" language="javascript" src="http://assets.tumblr.com/languages/errors.js"></script>\n    </body>\n</html>\n'
>>> 
```

They both return the same error. First one should show the HTML, second one should show an RSS feed.

I reproduced this on different servers and different times, in Python 2.6.5 and Python 2.7.1+. In Wget and urllib2 they work.


Version 0.8 introduces major change to the backend side of the library. Starting from this version Requests uses urllib3 instead of urllib2. This introduced some bugs. Take a look at issue [#256](https://github.com/kennethreitz/requests/issues/256)


Looks like it's related to the url path. Thanks for the report. 

Luckily, that's what major releases are for :)