urlencode($jsonEncodedData) resolved the problem for me.
private function rest_request($call_name, $call_arguments) {
$ch = curl_init();
$post_data = 'method='.$call_name.'&input_type=JSON&response_type=JSON';
$jsonEncodedData = json_encode($call_arguments);
// $post_data = $post_data . "&rest_data=" . $jsonEncodedData;
$post_data = $post_data . "&rest_data=" . urlencode($jsonEncodedData); ....