我正在尝试建立一个到 API 的服务器端连接,该连接全天不断地解析 API 的 JSON 响应并将其记录在 MySQL 数据库中。我的网站被设置为 Wordpress 网站,因此任何特定于 Wordpress 的解决方案也适用。
例如,我知道如何使用 Python 保持连接打开并打印响应。像这样的东西有效:
import requests
import json
headers = {'Content-Type': 'application/json',
"Authorization": "Bearer api_key_here"}
baseurl = 'http://stream.url/here'
payload = { 'key_id' : 'key'}
r = requests.get(baseurl, params=payload, headers=headers, stream=True)
print(r.headers)
print('\n')
for line in r.iter_lines():
if line:
print(json.loads(line.decode("utf-8")))
上述脚本的输出从 API 服务器传入时逐行流出。 例如,假设我每秒都会收到这样的响应:
{'type': 'TYPE', 'time': '2019-11-18T21:07:12.422789431Z', 'key1': [{'dat1': '1.10739', 'dat2': 10000000}], 'key2': [{'dat1': '1.10752', 'dat2': 10000000}]}
我现在想做的是设置一个服务器端脚本(最好是 PHP,但我也可以使用其他解决方案),基本上可以做到这一点,除了不打印响应,而是将其记录到数据库表中,全天实时。
我没有太多设置这样的服务器端脚本的经验,所以不知道从哪里开始。
最佳答案
PHP 确实不太“听”。您确实有两个选择:
- 调用 PHP 脚本来检查输出并每隔几秒运行一次的 Cronjob。
- 除了打印之外,还可以将 Python 脚本 POST 到某处而不是/。
关于php - 设置服务器端脚本以连续记录来自数据库中 API 的流式 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924569/