php - 使用 Zend_Http_Client 时出现内容类型错误

标签 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();

调用此脚本时出现以下错误:

Cannot handle content type '' automatically. Please use Zend_Http_Client::setRawData to send this kind of content.

它是在 Zend_Http_Client 的 _prepareBody() 方法中抛出的。当我添加一个 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);

关于php - 使用 Zend_Http_Client 时出现内容类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30095209/

相关文章:

php - 如何将自定义列添加到查询生成器中的选择?

ios - 如何使用 iOS 5 将 json post 值发送到远程服务器并获取结果?

php - Zend 表单验证范围日期

php - 如何显示网页并保密其位置?

php - 如果 id 存在则更新,否则插入 (ODBC)

Jquery POST 在 spring mvc 中给出 403 禁止错误

c# - 使用套接字 C# 的 POST 请求

windows - Zend 框架 : Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'

zend-framework - 警告 : require_once(Zend/Application. php):无法打开流:/var/w 中没有这样的文件或目录

php - 具有多种功能的产品的数据库设计