gpt4 book ai didi

php - 定期下载外部 JSON

转载 作者:搜寻专家 更新时间:2023-10-31 21:31:03 26 4
gpt4 key购买 nike

我目前正在使用返回 JSON 对象的 API。我按点击次数付费,所以我想尽量减少我的点击次数。我使用这个对象来填充我页面上的图像和文本。返回的对象与 iTunes 查找命中非常相似。

我的代码的简化版本是这样的:

<img id="test" src="" alt="Image" />

<script>
$.getJSON( "https://itunes.apple.com/lookup?id=284910350", function( data ) {
document.getElementById('test').setAttribute("src", data.results[0].screenshotUrls[0]);
});
</script>

每次用户打开此页面时,都会向服务器发送一个请求,并且会向我的帐户添加一个点击(很明显)。我想将该对象暂时存储在我自己的服务器上,这样我就可以一次请求数据,并为用户提供“本地”版本。做这个的最好方式是什么?是否可以每周左右自动更新文件?

提前致谢!

最佳答案

这是一项简单的 cron 工作。假设您可以在您的服务器中执行 bash 脚本:

1 - 在您的服务器中放置一个名为 fetchItune.sh 的 bash 脚本。这个脚本的内容基本上存储了一些对外部 API 的 curl 请求:

#!/bin/sh
curl -H "Accept: application/json" https://itunes.apple.com/lookup\?id\=284910350 -o /path/to/storage/data.json

您可以喜欢这个脚本,例如将端点列表放在一个数组中或输出到不同的文件等。但核心是确保它们是接受 JSON 响应的有效 HTTP 请求。

2 - 设置一个 cron 作业以每周执行一次。如果您使用的是 Ubuntu 服务器,它可能就像将此脚本放入 /etc/cron.weekly 一样简单。否则,请搜索您的服务器文档。我确定有一个关于 cron 作业的部分。

3 - 从您的 JavaScript 请求您的服务器端点而不是外部 API:

<script>
$.getJSON( "/path/to/storage/data.json", function( data ) {
document.getElementById('test').setAttribute("src", data.results[0].screenshotUrls[0]);
});
</script>

编辑:您可以编写 PHP 脚本而不是 bash 脚本来向外部 API 发出请求。原理是一样的。我直接从 PHP curl 文档中获取:http://php.net/manual/en/curl.examples-basic.php

<?php

$ch = curl_init("https://itunes.apple.com/lookup\?id\=284910350");
$fp = fopen("/path/to/storage/data.json", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

关于php - 定期下载外部 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com