I've come across a bug in PHP 5.2 that has been causing issues when I try to use httprl to do an HTTPS POST:
"When opening a socket connection with stream_socket_client() and the ssl:// wrapper, the connect-asynchronously flag (STREAM_CLIENT_ASYNC_CONNECT) causes ssl encryption to fail."
Full details and the patch for PHP 5.2.11 are here: https://bugs.php.net/bug.php?id=48182
The impact of this is that traffic destined for https://server:443/ silently ends up being sent insecurely to http://server:443/. I was alerted to this by the remote server erroring with "The plain HTTP request was sent to HTTPS port" when I switched from using drupal_http_request to httprl_request.
I've included a patch which works for me but will need review as I haven't tested it outside my particular use case.