(Command Line Example that works) shell#curl -d 'level=2&pass=password&hsam_timeout=20' -k https://1.1.1.1/auth AUTH: OK SESSION: 4221231856 (EXAMPLE TEST with module distro t/new/06http-post.t) $curl->setopt( CURLOPT_URL, $ENV{CURL_TEST_URL} ); $curl->setopt( CURLOPT_READFUNCTION, \&read_callback ); $curl->setopt( CURLOPT_INFILESIZE, $max ); $curl->setopt( CURLOPT_UPLOAD, 1 ); $curl->setopt( CURLOPT_CUSTOMREQUEST, 'POST' ); my $code = $curl->perform; (My code that also turns off the ssl check) $curl->setopt( CURLOPT_URL,'https://1.1.1.1/auth?level=2&pass=password&hsam_timeout=20' ); $curl->setopt( CURLOPT_READFUNCTION, \&read_callback ); $curl->setopt( CURLOPT_INFILESIZE, $max ); $curl->setopt( CURLOPT_UPLOAD, 1 ); $curl->setopt( CURLOPT_CUSTOMREQUEST, 'POST' ); $curl->setopt(CURLOPT_SSL_VERIFYPEER,0); $curl->setopt(CURLOPT_SSL_VERIFYHOST,0); my $code = $curl->perform;