从API获取数据时出现问题,具体取决于请求的来源

时间:2019-04-15 12:13:06

标签: php api postman guzzle activecampaign

首先,在有人暗示之前,我并不是在寻求特定于API的帮助。我在咨询Active Campaign's API时遇到了一个奇怪的问题。

我正在使用一个特定的端点,即GET contacts端点。通常,此终结点没有任何问题,但是在特定情况下,我使用segmentid get参数时,我与信息不一致。

我正在使用两种方式获取API。其中一个是Postman,另一个是我的代码,该代码使用php的Guzzle http客户端。

当我在Postman中咨询时,在第一个结果上,我得到一个奇怪的变量,说waiting => true,而我的contacts数组为空。当我再次查询完全相同的端点时,变量waiting消失了,我得到了对应的通讯录数组,其中填充了对应的结果。因此,基本上的想法是,如果我第二次这样做,我会得到结果。

另一方面,现在,使用我的代码,我正在执行完全相同的终结点请求,并且尝试重复两次该请求,两次都得到waiting => true完全相同的结果。我什至尝试了以下方法:

foreach($segments as $index => $segment) {
    $segments[$index]['contacts'] = $this->ac->get_contacts(array(), $segment['id'], 'desc', 1, 30, 0);

    while($segments[$index]['contacts']->meta->waiting == true) {
        usleep(250000);
        $segments[$index]['contacts'] = $this->ac->get_contacts(array(), $segment['id'], 'desc', 1, 30, 0);
    }
}

但是即使这样,它仍然会永远请求,结果永远不会改变,最终我会收到504错误。

现在我的主要问题是:在获取信息的两种方式之间,同一端点的结果如何变化,我是否缺少一些参数,或者为了复制与Postman相同的行为,我需要什么?为了获得信息?

Api令牌是相同的,端点是相同的。

0 个答案:

没有答案