Ste*_*old 6 php post zend-framework zend-http-client
我正在尝试使用Zend_Http_Client和POST将数据发送到Google Analytic的收集器.我有一个数组$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();
Run Code Online (Sandbox Code Playgroud)
调用此脚本时,我收到以下错误:
无法自动处理内容类型''.请使用Zend_Http_Client :: setRawData发送此类内容.
它被抛入_prepareBody()Zend_Http_Client 中的方法中.当我在echo($this->enctype); die();那里添加时,我会收到NULL.
我会添加$client->setEncType();到我的代码但数据很简单.
有谁知道我在这里缺少什么?我真的要用setRawData吗?
提前致谢!
更新:$client->setParameterPost('postParams', $postParams);也不会有效.它会抛出同样的错误.
这个答案让我回到正轨:/sf/answers/518524401/
$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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1673 次 |
| 最近记录: |