Если вы отправляете строку, urlencode (). В противном случае, если массив, он должен иметь значение key =>, и заголовок Content-type
автоматически устанавливается на multipart/form-data
.
Кроме того, вам не нужно создавать дополнительные функции для построения запроса для вашего массивов, вы уже имеете это:
$query = http_build_query($data, '', '&');