I finally figured out the (very) simple solution to my proxy
problem... here's a brief recount of the problem and my findings...
I'm using a web service which operates on HTTPS/SSL. I was trying to
use the S::L->uri()->service() syntax and I was finding that S::L was
attempting to issue a GET over HTTP to my proxy, rather than the HTTP
CONNECT method that is required for interaction with a web server over
SSL through a proxy (at least the proxy that I'm using). I tried two
different methods of specifying the proxy:
- setting environment variable https_proxy=http://my-proxy:80
- using the S::L syntax...
Much to my chagrin and confusion, the above (undesirable) behavior
only occurred in Windows - on my Debian GNU/Linux box, my code did the
right thing. I'm still not sure what's different to cause the UNIX
setup to work differently.
Anyway, the solution is to use the environment variable approach, but
the variable name in all caps. Simply setting the environment
variable HTTPS_PROXY=http://my-proxy:80 instead of the lower-case
version, forces the use of the Crypt::SSLeay proxy support rather than
the (default) LWP::UserAgent support.
I found this here:
So, ultimately, this is completely unrelated to S::L and rather only
on the strange behavior of the packages listed above that S::L makes
Hopefully this helps someone, sometime!