I'm a newbie. I tried a lot of thing to get data and export data to the screen. Response.statusCode = 200 but data always null here.
Github: here
I think error from Main -> future: getPost(url, "OAISJFAOISFJASF") or builder: (context, snapshot) { ... }
Main:
import 'package:flutter/material.dart';
import 'package:postapi/post_login.dart';
void main() {
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: Home()
);
}
}
class Home extends StatelessWidget{
String url = "http://13.250.59.224:56321/api/users/login";
callAPI(){
Post post = Post();
createPost(post, url).then((response){
if(response.statusCode > 200) {
print(response.body);
}
else {
print(response.statusCode);
}
}).catchError((error){
print('error : $error');
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body : FutureBuilder<Post>(
future: getPost(url, "OAISJFAOISFJASF"),
builder: (context, snapshot) {
callAPI();
if(snapshot.connectionState == ConnectionState.done) {
if(snapshot.hasError){
return Text("Error");
}
return Text('UserID JSON : ${snapshot.data.userID}');
}
else
return CircularProgressIndicator();
}
)
);
}
}
Post_Login:
import 'dart:async';
import 'dart:io';
import 'dart:convert';
import 'package:flutter/cupertino.dart';
import 'package:http/http.dart' as http;
import 'package:http/http.dart';
Future<Post> getPost(String url, String firebase_token) async{
Map<String, String> headers = {"Content-type": "application/json"};
String json = '{"grant_type":"firebase_token","firebase_token":"$firebase_token"}';
final response = await http.post(
url, headers: headers,
body: json);
return postFromJson(response.body);
}
Future<http.Response> createPost(Post post, String url) async{
final response = await http.post('$url',
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
HttpHeaders.authorizationHeader : ''
},
body: postToJson(post)
);
return response;
}
Post postFromJson(String str) {
final jsonData = json.decode(str);
return Post.fromJson(jsonData);
}
String postToJson(Post data) {
final dyn = data.toJson();
return json.encode(dyn);
}
class Post {
String userID;
String access_token;
String refresh_token;
String role;
Post({
this.userID,
this.access_token,
this.refresh_token,
this.role
});
factory Post.fromJson(Map<String, dynamic> json) => new Post(
userID: json["userID"],
access_token: json["description"],
refresh_token: json["refresh_token"],
role: json["role"],
);
Map<String, dynamic> toJson() => {
"userID": userID,
"access_token": access_token,
"refresh_token": refresh_token,
"role": role,
};
}
asdaskdasldhjalshfjlashflasdhjlaskjdaks;djaksfhjksbckasdasjdaskjdasjdklasjdlkasjdlkjglashfjklshfsadlfjsklfjsalkfjsalfjs;lfjasl