http.get()
を使用して、使用しているAPIからJSONを取得していますが、データが取得されません。私はこのJSONがNodeMCUにとって大きすぎるのではないかと疑っています。私は、サブパート "stats:"の情報だけが必要です。それは可能なのはhttp.get()
JSONのその部分ですか?NodeMCUでAPIを使用するときにJSONの一部のみを取得する
はEDITは:
これは私もgetstatsを()
function getaeonrate()
http.get("https://api.coinmarketcap.com/v1/ticker/aeon/?convert=EUR", nil, function(code, dataaeon)
if (code < 0) then
print("can't get aeon")
else
-- Decode JSON data
m = cjson.decode(dataaeon)
-- Extract AEON/EUR price from decoded JSON
aeonrate = string.format("%f", m[1]["price_eur"]);
aeonchange = "24h " .. m[1]["percent_change_24h"] .. "% 7d " .. m[1]["percent_change_7d"] .. "%"
dofile('update_display.lua')
end
end)
end
の上に別のAPIからデータを取得し、別の機能を持っている。しかし、今奇妙なことがある私のコード
function getstats()
http.get("https://api.aeon-pool.com/v1/stats_address?address=WmsGUrXTR7sgKmHEqRNLgPLndWKSvjFXcd4soHnaxVjY3aBWW4kncTrRcBJJgUkeGwcHfzuZABk6XK6qAp8VmSci2AyGHcUit", nil, function(code, pool)
if (code < 0) then
print("can't get stats")
else
h = cjson.decode(pool)
hashrate = h[1]["hashrate"]
print(hashrate)
dofile('update_display.lua')
end
end)
end
ですgetstats()から 'pool'にアクセスしたいときは、getaeonrate()からjsonデータを取得します。だから私は別の関数からjsonを取得しているので、 "ハッシュレート"はjsonでさえありません。
は私だけgetstatsを持つ新しいプロジェクトを()作ってみました、それは私はいつも、私は応答がapi.aeon-から大きすぎると考えた。この
HTTP client: Disconnected with error: -9
HTTP client: Connection timeout
HTTP client: Connection timeout
昨日のようなエラーが出全く動作しません。 pool.com、私はあなたのウェブブラウザのjsonを見れば、トップエントリが 'stats:'であることがわかります。私はそれだけ必要ですが、他のものはありません。だからリクエストが大きい場合は、http.get()だけにjsonの部分、つまり私の元の質問がうまくいくでしょう。現時点では、何が正しく動作していないのか分かりませんが、nodemcuファームウェアは一般的にhttp.get()に問題があり、正しく動作しませんでしたが、api.coinmarketcapからデータを取得しています。 comは元のプロジェクトで正常に動作します。
このようには楽しいが、低品質のポストではありませんが、それを向上させることができ、いくつかは、と思うかもしれないとして、いや、それはオフトピックはありませんそれはNodeMCUのLuaのプログラミングについてです。ファームウェア。欠けているのは、自己完結型の小さなコードサンプルで、理想的には使用しているAPIへのURLです。役に立つリンク:https://stackoverflow.com/help/how-to-ask –
@MarcelStörは今多くの情報を追加しました誰かが今私を助けることを願って – Tanonic
あなたのフィードバックは何ですか? –