Bigcommerce getOrders() timeout line 198 (parseHeader?)


Bigcommerce getOrders() timeout line 198 (parseHeader?)

下午,

只要看看bigcommerce API,我很早就被卡住了!我正在使用PHP而不是curl,因为它在windows机器上更容易,并且希望它在共享主机等上可用。

所以我使用bigcommerce.php

我当前的文件看起来像这个

Bigcommerce::configure(array(
'store_url' => '******',
'username' => 'demo',
'api_key' => '******'
));
Bigcommerce::setCipher('RC4-SHA');
Bigcommerce::verifyPeer(false);
$count = Bigcommerce::getOrdersCount()/200;
for ($i = 1; $i <= $count; $i) {
    $filter = array('limit' => 200, 'page' => $i);
    $orders = Bigcommerce::getOrders($filter);
    foreach($orders as $order) {
        echo $order->name;
        echo $order->price;
    }
 }

我已经用ping请求测试了连接,它运行良好。它还可以很好地检索订单数量(GetOrderCount部分),但当我尝试检索订单时,我会超时。

你可以在这个链接上看到输出(需要300秒才能超时)

http://www.32bytes.co.uk/test/test.php

它指的是像198这样的问题行,它是这段代码(函数)。。。。

private function parseHeader($curl, $headers)
{
    if (!$this->responseStatusLine && strpos($headers, 'HTTP/') === 0) {
        $this->responseStatusLine = $headers;
    } else {
        $parts = explode(': ', $headers);
        if (isset($parts[1])) {
            $this->responseHeaders[$parts[0]] = trim($parts[1]);
        }
    }
    return strlen($headers);

bigcommerce.php页面保留为默认的直接来自它们自己的页面。

任何帮助都将不胜感激——我看不出哪里出了问题!

脚本获取所有订单页面的时间太长。您可以通过在脚本文件/引导程序的顶部添加以下内容来取消自动执行超时设置来"修复"它:

ini_set('MAX_EXECUTION_TIME', -1);

我也使用php来完全访问bigCommerce,以便使我的内部库存应用程序保持最新。

我只使用

$orders = BigCommerce_Api::getCollection('/orders/');

然后在foeach循环中迭代

foreach($orders as $order) { .... print to page or db, which ever you choose }