12

我正在开发一种用于检查网页中链接完整性的工具。

我注意到各种 Instagram URL 将返回 HTTP 500 响应,如果一个人要在浏览器中访问给定的 URL,则会收到伴随预期资源的 HTTP 200 响应。

这是在像浏览器用户一样请求常规 Instagram URL 时,而不是在使用 REST API 时。

使用 cURL 的典型请求/响应:

curl -v http://instagram.com/p/YKTkxHBA-P/
* About to connect() to instagram.com port 80 (#0)
*   Trying 54.225.159.246... connected
> GET /p/YKTkxHBA-P/ HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: instagram.com
> Accept: */*
> 
< HTTP/1.1 500 Server Error
< Cache-Control: no-cache
< Content-Type: text/html
< Date: Tue, 15 Oct 2013 08:31:09 GMT
< Server: nginx
< Content-Length: 87
< Connection: keep-alive
< 
<html><body><h1>500 Server Error</h1>
An internal server error occured.
</body></html>
* Connection #0 to host instagram.com left intact
* Closing connection #0

在这种情况下,我确实收到了 HTTP 200 响应,但现在我一直收到 HTTP 500 响应。

这都是特定于给定主机的;这样的 URL,即使使用 cURL 发送请求,也会从其他机器返回 HTTP 200 响应。

由于这特定于发送请求的主机,我怀疑某种形式的速率限制或 IP 请求过滤正在进行,但是我找不到任何文档。

由于给定 IP 被拒绝访问,Instagram 会正式返回 HTTP 500 响应吗?

4

6 回答 6

0

就在昨天,我收到了来自 Instagram 支持的邮件。

...
您好,

我们对服务器配置进行了一些更改,请问您是否仍然看到 500 错误?

谢谢,
...

..好吧,我 100% 确定那些 500ers 不是来自 IG 的 IP 速率限制,因为它们也没有事先归还。

我一直在检查日志文件,在2014-04-14 18:28:56 (PST)之后发现了几个 502 (Bad Gateway) 和“host unreachables”,尽管本身不再有 500 个。

看来他们在将近一个月后终于解决了……^_^

于 2014-04-16T04:10:59.967 回答
0

这是 IP 速率限制。如果您想跳过联系 Instagram 的部分并等待他们在那里工作的猴子团队来解决问题,只需为您的服务器分配 1000 个 IP 并随机遍历它们以获取您的请求。你不会再看到500的了。

干杯。

于 2014-03-31T22:04:20.860 回答
0

我遇到了完全相同的问题 - 不幸的是,没有办法解决它。发生这种情况是因为两个多请求。起初我认为这是我的 IP 或者可能是我的 UDID,直到我从我自己的手机和我的家庭 IP 登录到我的应用程序,但使用不同的 Instagram id,它最终再次按预期工作。最终,随着时间的推移,我可以再次使用自己的 ID,但请求有限。我不确定算法是如何工作的,但时间越长,我可以再次使用的请求就越多。

此外,这是在实际应用程序中的实际 iPhone 上实时进行的,而不是在 iOS sim 或 Instagram API 控制台上,仅供参考。

要点:请求限制基于用户(每个用户每小时 5000 个请求)...没有 IP 速率限制。

希望这可以帮助 :)

克莱顿

于 2014-08-19T19:00:01.770 回答
0

我也有同样的问题。正如我所知,您必须获得对 API 的额外访问权限,我的意思是您的应用程序中的沙盒模式不允许您使用所有 API。要获得额外的权限,请转到客户偏好,点击“权限”。

于 2016-12-23T20:08:27.040 回答
-1

这似乎与 curl 版本有关,我在 4 台不同的机器 10 个不同的 ip 上也遇到了同样的问题 v 7.22.0,而 v7.30.0 和 v7.19.7 的工作就像一个魅力。目前正在进一步调查。

于 2014-04-11T12:07:24.827 回答
-2

我几乎 100% 肯定会发生这种情况,因为 Instagram API 阻止了域/IP 地址。

原因:

  1. 用于在浏览器中获取 JSON。从 web 服务获取 cURL 不起作用。
  2. 我将我的确切应用程序从我的主域(如果应用程序不起作用)复制到另一个域。相同的应用程序有效。

奇怪的是,您得到的是“500 内部错误”,而不是“您的 IP 被阻止”的消息。

于 2014-03-27T16:35:49.503 回答