When I assign an array of data to be POSTed as a cURL option (via CURLOPT_POSTFIELDS), do I need to urlencode that data first or will that be taken care of?
POST data is not added to the URL (like GET) so you don't need to URLencode it.