mirror of
https://github.com/nisrulz/flutter-examples.git
synced 2025-08-23 14:01:14 +08:00

* Added a News&Memes-App/Sriraj-dev * Added Screen recording and Screenshots * Update README.md * Added demo directory with sample images/recording * Update README.md
43 lines
1.1 KiB
Dart
43 lines
1.1 KiB
Dart
import 'dart:convert';
|
|
|
|
import 'package:http/http.dart' as http;
|
|
|
|
final String apikey = 'YOUR_API_KEY';
|
|
|
|
Future<List<NewsModel>> showNews() async {
|
|
Uri uri = Uri.parse(
|
|
'https://newsapi.org/v2/top-headlines?country=in&apiKey=$apikey');
|
|
|
|
final response = await http.get(uri);
|
|
|
|
if (response.statusCode == 200 || response.statusCode == 201) {
|
|
print(response.body);
|
|
Map<String, dynamic> result = json.decode(response.body);
|
|
|
|
List articles = result['articles'];
|
|
print('Articles are - $articles');
|
|
List<NewsModel> news = articles.map((e) => NewsModel.fromjson(e)).toList();
|
|
|
|
return news;
|
|
} else {
|
|
print('Error - ${response.statusCode}');
|
|
return [];
|
|
}
|
|
}
|
|
|
|
class NewsModel {
|
|
String title, description, content, imageUrl, date;
|
|
|
|
NewsModel(
|
|
this.title, this.description, this.content, this.imageUrl, this.date);
|
|
|
|
factory NewsModel.fromjson(Map<String, dynamic> jsondata) {
|
|
return NewsModel(
|
|
jsondata['title'] ?? '',
|
|
jsondata['description'] ?? '',
|
|
jsondata['content'] ?? '',
|
|
jsondata['urlToImage'] ?? 'NoImage',
|
|
jsondata['publishedAt'] ?? '');
|
|
}
|
|
}
|