Currently LWP does not support HTTPS over proxies. I’m trying to write a patch for just that, but I’m not sure whether the special-casing code should go in LWP::UserAgent::send_request or in LWP::Protocol::http::request.
If an HTTPS connection is made through an HTTP proxy, the request method sent to the proxy must be CONNECT, followed by optional headers (probably default_headers). Then the client must wait for an HTTP 200 response, after which it must initiate an HTTPS request using the same connection. Should this sort of switching be in LWP::UserAgent::send_method?