I wrote the API with .NET. But I didn't call my Flutter in the Localhost. How can I do with my own IP address. How can I list my data from api? How can I list data on your own rope in Postman?
I'm a problem with the code in the app. I am sharing the related codes with you.
Model.dart
import 'dart:convert';
List<Sonuc> sonucFromJson(String str) => List<Sonuc>.from(json.decode(str).map((x) => Sonuc.fromJson(x)));
String sonucToJson(List<Sonuc> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
class Sonuc {
Sonuc({
this.employeeId,
this.employeeName,
this.department,
this.mailId,
this.column1,
});
int employeeId;
String employeeName;
String department;
String mailId;
DateTime column1;
factory Sonuc.fromJson(Map<String, dynamic> json) => Sonuc(
employeeId: json["employeeID"],
employeeName: json["employeeName"],
department: json["department"],
mailId: json["mailID"],
column1: DateTime.parse(json["Column1"]),
);
Map<String, dynamic> toJson() => {
"employeeID": employeeId,
"employeeName": employeeName,
"department": department,
"mailID": mailId,
"Column1": "${column1.year.toString().padLeft(4, '0')}-${column1.month.toString().padLeft(2, '0')}-${column1.day.toString().padLeft(2, '0')}",
};
}
Service.dart
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';
class Sonuclar {
Future<List<Sonuc>> getSonuc() async {
final String _url = "https://localhost:44333/api/employee";
final Map<String, String> _headers = {'Accept': 'application/json', 'Content-Type': 'application/json', 'Charset': 'utf-8'};
final http.Response response = await http.get(
Uri.encodeFull(_url),
headers: _headers,
);
if (response.statusCode == 200) {
final _jsonBody = response.body;
print("department: " + _jsonBody);
final sonucResponse = sonucFromJson(_jsonBody);
return sonucResponse;
} else {
throw Exception("Request failed with status: ${response.statusCode}");
}
}
}
view.dart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:rehber_uygulmasi_staj/modeller/sonuc.dart';
import 'package:rehber_uygulmasi_staj/servisler/sonuc.dart';
class AramaSonuc extends StatefulWidget {
@override
_AramaSonucState createState() => _AramaSonucState();
}
class _AramaSonucState extends State<AramaSonuc> {
final sonucService= Sonuclar();
Future<List<Sonuc>> _future;
@override
void initState() {
_future = sonucService.getSonuc();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor:Colors.redAccent /*HexColor("#0e2d85")*/, title: Text("Arama Sonucu",style: TextStyle(fontSize: 24),),),
body: Container(
child: FutureBuilder<List<Sonuc>>(
future: _future,
builder: (context, AsyncSnapshot<List<Sonuc>> snapshot){
if(snapshot.hasData){
return ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: snapshot.data.length,
itemBuilder: (context,int index){
print("Data is here ${snapshot.data}");
return Card(
elevation: 4,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
child: ListTile(
leading: Text(snapshot.data[index].department),
title: Text(snapshot.data[index].employeeName),
isThreeLine: true,
subtitle: Text('${snapshot.data[index].mailId}\n${snapshot.data[index].employeeId}'),
),
);
}
);
}
else {
print("Data is here ${snapshot.data}");
return Center(
child: CircularProgressIndicator(),
);
}
}
),
),
);
}
Have you tried this solution described here?
How to point to localhost:8000 with the Dart http package in Flutter?
var client = createHttpClient();
client.get(new Uri.http("locahost:44333", "/api"));