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.