6

Zend_Http_Client と POST を使用して、Google アナリティクスのコレクターにデータを送信しようとしています。$postParamsトラッキング ID、cid、およびヒット タイプを含む配列があり、この配列の値を 経由でクライアントに追加します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);あまりにも動作しません。同じエラーがスローされます。

4

1 に答える 1

3

この答えは私を軌道に乗せました: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);
于 2015-05-11T06:54:50.720 に答える