Ошибка типа контента при использовании Zend_Http_Client

Я пытаюсь отправить данные в коллектор 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); тоже не сработает. Выдает ту же ошибку.

6

Решение

Этот ответ вернул меня на правильный путь: 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);
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]