I notice you're explicitly using Net::SSLeay and you've commented out LWP. When I work with SSL, I continue using LWP and when LWP sees an HTTPS URL, it just auto-magically uses Crypt::SSLeay to open the SSL connection. I never have to use Net::SSLeay anywhere in my code. Is there a specific reason you're using Net::SSLeay directly?
in reply to Re^2: What can be the reasons for bad request ??
in thread What can be the reasons for bad request ??
From the SSL readme with LWP:
The libwww-perl package has support for using SSL/TLSv1 with its HTTP
client and server classes. This support makes it possible to access
https schemed URLs with LWP. Because of the problematic status of
encryption software in general and certain encryption algorithms in
particular, in several countries, libwww-perl package doesn't include
SSL functionality out-of-the-box.
Encryption support is obtained through the use of Crypt::SSLeay or
IO::Socket::SSL, which can both be found from CPAN. While libwww-perl
has "plug-and-play" support for both of these modules (as of v5.45),
the recommended module to use is Crypt::SSLeay. In addition to
bringing SSL support to the LWP package, IO::Socket::SSL can be used
as an object oriented interface to SSL encrypted network sockets.
There is yet another SSL interface for perl called Net::SSLeay. It has
a more complete SSL interface and can be used for web client
programming among other things but doesn't directly support LWP.
The underlying SSL support in all of these modules is based on OpenSSL
<http://www.openssl.org/> (formerly SSLeay). For WWW-server side SSL
support (e.g. CGI/FCGI scripts) in Apache see <http://www.modssl.org/>.