这个问题真的让我很困惑。我将首先解释我正在尝试做的事情:
在我正在开发的网站上,我想显示从 Picasa 上的特定帐户检索到的照片的相册。为此,我使用了 XML 提要 ( http://picasaweb.google.com/data/feed/api/user/userID )。我使用 SimpleXMLElement 对象加载此提要。
现在奇怪的是,当我在相册中添加/删除照片时,更改需要一些时间(通常是几分钟)才能生效。PHP 对象仍然接收旧数据。现在这并不奇怪,考虑到 Google 可能希望限制请求的数量,但是,当在 Firefox 中加载提要时,更改会立即显示。
是什么导致了这种延迟,我能做些什么吗?检索提要时,FF 和 PHP 有什么区别吗?我注意到这个问题已经被问过一段时间了,但没有任何答案,我认为它太老了,无法解决它。
我曾尝试同时使用 file_get_contents 和 curl,但似乎都不起作用。显然问题不在于 PHP,因为在另一个问题中使用了 C#。
编辑 - 这是来自 Firefox 的请求标头:
Expires: Fri, 16 Nov 2012 19:22:45 GMT
Date: Fri, 16 Nov 2012 19:22:45 GMT
Cache-Control: private, max-age=0, must-revalidate
Content-Type: application/atom+xml; charset=UTF-8; type=feed
Vary: Accept, X-GData-Authorization, GData-Version, Cookie
GData-Version: 2.0
Etag: W/"DEEBQnk9fyp7ImA9WhNQEEU."
Last-Modified: Fri, 16 Nov 2012 17:24:13 GMT
Content-Encoding: gzip
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
200 OK
以及 curl 的响应标头:
HTTP/1.1 200 OK
Expires: Fri, 16 Nov 2012 19:30:26 GMT
Date: Fri, 16 Nov 2012 19:30:26 GMT
Cache-Control: private, max-age=0, must-revalidate, no-transform
Set-Cookie: _rtok=lL_1sPFA07ra; Path=/; HttpOnly
Set-Cookie: S=photos_html=jHfi_UGm4xVujZVehiIOpw; Domain=.google.com; Path=/; HttpOnly
Content-Type: application/atom+xml; charset=UTF-8; type=feed
Vary: Accept, X-GData-Authorization, GData-Version, Cookie
GData-Version: 2.0
ETag: W/"DEEBQnk9fyp7ImA9WhNQEEU."
Last-Modified: Fri, 16 Nov 2012 17:24:13 GMT
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Transfer-Encoding: chunked
编辑2:我想我想通了!显然,匿名查看时,提要每隔几分钟更新一次。但是,Firefox 存储了我的 Picasa 登录会话,因此它被视为授权请求。Chrome 没有此会话,因此也没有立即更新。一旦我还允许 Picasa 在 Chrome 中存储 cookie,它确实会立即更新,而 Opera 仍然延迟。万一发帖人仍然感兴趣,我会回答另一个问题。
感谢评论中的提示,这使我发现了原因。如果你能把它写下来作为答案,我会接受那个。