Я пытаюсь отправить данные в коллектор Google Analytic с помощью Zend_Http_Client и POST. У меня есть массив $postParams
включая мои идентификационные номера, типы cid и hit, и я добавляю значения этого массива в мой клиент через setParameterPost()
,
Вот соответствующая часть моего действия:
$client = new Zend_Http_Client('https://ssl.google-analytics.com/debug/collect');
foreach ($postParams as $postParam => $postValue) {
$client->setParameterPost($postParam, $postValue);
}
$response = $client->request();
При вызове этого скрипта я получаю следующую ошибку:
Не удается обработать тип контента автоматически. Пожалуйста, используйте Zend_Http_Client :: setRawData для отправки такого рода контента.
Это брошено в _prepareBody()
метод в Zend_Http_Client. Когда я добавляю echo($this->enctype); die();
там я получаю NULL
,
Я бы добавил $client->setEncType();
к моему коду, но данные просты.
Кто-нибудь знает, что мне здесь не хватает? Я действительно должен использовать setRawData
?
Заранее спасибо!
Обновить: $client->setParameterPost('postParams', $postParams);
тоже не сработает. Выдает ту же ошибку.
Этот ответ вернул меня на правильный путь: https://stackoverflow.com/a/7407491/3218828
$rawData = '';
foreach ($postParams as $postParam => $postValue) {
if ($rawData !== '') {
$rawData .= '&';
}
$rawData .= $postParam . '%5B%5D=' . $postValue;
}
$client = new Zend_Http_Client();
$client->setRawData($rawData);
$client->setUri('https://ssl.google-analytics.com/debug/collect');
$client->request(Zend_Http_Client::GET);
Других решений пока нет …