【问题标题】:Instagram API with CURL slow, jquery ajax fastInstagram API 与 CURL 慢,jquery ajax 快
【发布时间】:2014-09-12 21:48:02
【问题描述】:

我对使用 PHP 的 Instagram api 有疑问。 Instagram API 网址如下:

https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e

使用这个:https://github.com/cosenary/Instagram-PHP-API

在我的 php 脚本中使用以下代码:

<?php 
$instagram = new Instagram('c32bb75ba2b449dc93b5461a84d9003e');
$response = $instagram->getPopularMedia();
header('Content-Type: application/json');
echo json_encode($response, JSON_PRETTY_PRINT);

脚本执行有时超过 40 秒,有时没有结果。

简单的调用也有同样的问题:

<?php  
echo file_get_contents('https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e')

使用像这样的简单 jquery AJAX 请求(在同一台服务器上):

$.ajax({
        dataType: "jsonp",
        cache: false,
        url: "https://api.instagram.com/v1/media/popular?client_id=c32bb75ba2b449dc93b5461a84d9003e",
        success: function(data) {
            console.log(data);
        }
    });

结果总是很快。

我在不同的服务器上尝试了这两种方法,结果是一样的。同样在 PHP 类中,我尝试使用 file_get_content 代替 CURL,但一切都是一样的。

请帮助(使用 PHP)。

【问题讨论】:

    标签: php api curl instagram file-get-contents


    【解决方案1】:
    • 使用 AJAX 时,(指您的网络浏览器)打开与 instagram 的连接。
    • 使用 PHP 时,您的 Web 服务器会打开与 Instagram 的连接。

    这意味着:从您的网络服务器到 instagram 的连接可能很慢,因为您的网络服务器距离很远或使用了非常糟糕的路由,或者(更可能的解释)您(您的代码)位于一个非常糟糕的主机,它限制了 Web 服务器中脚本的带宽。

    您可以通过尝试获取其他网络服务或网站的内容来进行调试。

    【讨论】:

    • @Vlatko - 不是。 modpagespeed 用于通过缩小、压缩等方式优化网页的速度。它对 instagram 的问题没有影响
    • 只是在这里添加评论,Instagram 的 API 非常非常慢,遗憾的是与服务器位置无关,而更多地与它们的末端有关。即使是最简单的请求,我们也发现有时需要 20 秒才能得到响应。
    【解决方案2】:

    添加连接:靠近您发送的 HTTP 标头。 在 PHP 中: header('连接:关闭');

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多