![](/img/trans.png)
[英]Learning flutter from c# models and http call using http.dart for first time
[英]Using http.dart to Call CoinMarketCap API. Not sure what to do
所以我是 flutter 和 dart 的新手,我正在嘗試從 CoinMarketCap API 調用。我正在使用 HTTP package 來調用數據和 API 來調用數據,但我對它們不是很熟悉。 ..
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<Payload> getCryptoPrices() async {
var response = await http.get(Uri.parse(
"https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=5000&convert=USD"),
headers: {
'X-CMC_PRO_API_KEY': 'my-key',
"Accept": "application/json",
});
if (response.statusCode == 200) {
Payload payload = payloadFromJson(data.body);
return payload;
}
}
我收到幾個錯誤:
The name 'Payload' isn't a type so it can't be used as a type argument
The function 'payloadFromJson' isn't defined
Undefined name 'data'
我沒有成功導入JSON嗎? 我不確定如何修復錯誤。 我需要做什么才能成功撥打 API 電話? 任何反饋都會很棒。
“有效負載”不是 flutter class,因此它不存在。 您是否嘗試使用定制的 Class?
'payloadFromJson' 錯誤意味着它不存在,所以如果它在另一個 class 中,您可能沒有正確導入它
未定義的名稱 'data' 表示數據尚未定義,如果您希望響應的主體使用 'response.body'
代碼更新 #1
import 'package:wnetworking/wnetworking.dart';
class CoinMarketCap {
static const _apiKey = '111111111111111111111111111111';
static const _url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency';
static Future<void> getListingLatest(int limit) async {
var url = '$_url/listings/latest?start=1&limit=$limit&convert=USD';
var result = await HttpReqService.get<JMap>(
url,
auth: AuthType.apiKey,
authData: MapEntry('X-CMC_PRO_API_KEY', _apiKey)
);
var coins = (result?['data'] as List).cast<JMap>().map<String>((e) => e['name']);
print(coins);
}
}
void main(List<String> args) async {
await CoinMarketCap.getListingLatest(7);
print('\nJob done!');
}
Output:
(Bitcoin, Ethereum, Tether, USD Coin, BNB, XRP, Cardano)
Job done!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.