I do mine slightly differently, I don't know if it would make any difference, e.g.
// Initial parameters
$params['moodlewsrestformat'] = 'json';
$params['wsfunction'] = 'my_function_name';
$params['wstoken'] = 'my_token';
// Options
$options = array();
$options['RETURNTRANSFER'] = true;
$options['SSL_VERIFYPEER'] = false;
$result = $curl->get($myCurlURL, $params, $options);
$decode = json_decode($result);
----
If you change $curl->get to $curl->post and add in your values (and you may want to remove SSL_VERIFYPEER false, does it make any difference?