use requests when it is installed
closes #16716
closes #28825
closes #28826
solves https://github.com/pandas-dev/pandas/pull/16910

- [ ] tests added / passed
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Continuation of https://github.com/pandas-dev/pandas/pull/21504 and https://github.com/pandas-dev/pandas/pull/17087

This PR is not ready but I'd appreciate any early comment/feedback.
Haven't read through the attached issue but this is a little more complicated than I would have hoped for. Is there a reason why you think this is in scope of pandas? Pandas can operate for the most part on items that adhered to the IOBase definition. 

I don't think dealing with the `requests.models.Response` object is within scope > Haven't read through the attached issue but this is a little more complicated than I would have hoped for. Is there a reason why you think this is in scope of pandas? Pandas can operate for the most part on items that adhered to the IOBase definition.
> 
> I don't think dealing with the `requests.models.Response` object is within scope

I'm assuming you are taking about the `session` object, right? If so what did you hope for and what do you recommend me to modify to improve this?

Some background. At NOAA we need the `session` object in order to read URLs that are under password protected servers. I guess we can try the `.netrc` approach but it would be nicer to do this without relying on local files. IIRC pandas_datareader supports requests Sessions > IIRC pandas_datareader supports requests Sessions

I know. That is what inspired the original poster of this PR.

I'm traveling back home today and I'll address the review comments during the weekend. Thanks! I guess I'm not clear on what Sessions are doing here. Neither of the issues that this closes reference Session objects anywhere - are you sure this closes them?

Can you add test cases? @ocefpaf still active? Can you address comments and check CI failures? I'll probably have some time for this during the end of the year break. If someone wants to pick it up from here before that please feel free to do so. @ocefpaf if you can merge master and see if you can get passing would be great. Hi @ocefpaf  - sorry to chase you up, just wanted to ask whether you're still working on this :)
Seems that there's some test failures, but I can't check them as it says "build not found" Closing as I think stale, but certainly ping if you'd like to continue