http get call api не обновляет ответ. его показать предыдущий ответ
Я проверяю почтальона и получаю ответ "Получить URL-адрес" при успешном обновлении. Но я использую в своем проекте библиотеки Flutter Http и Dio. Получить ответ не обновляется. http Показать предыдущий ответ. Что за проблема, я не понимаю. Почему http и dio не получают обновленный ответ метода.
https://github.com/shakeelsaifi-it/Flutter-App
Проверить исходный код
2 ответа
Add Header no cache
Map<String, String> headers = {
'Content-Type': 'application/json; charset=UTF-8',
"Cache-Control": "no-cache"
};
В ответе API есть проблема с флаттером ( dio или http)
Ваш статус возвращает логическое значение и флаттер ( dio или http) не может его декодировать.
Измените статус с bool на int или string, как указано ниже
Измените свой API
из
{
"status": true,
"data": [
{
"event_id": "9",
"location": "Delhi, India",
"title": "test",
"start_time": "2020-07-02 02:08:20",
"end_time": "2020-07-30 02:08:20",
"interest": "test theme",
"interest_desp": "test theme",
"image": "5f06d7a4a53d3.jpg",
"comment": "about test",
"latitude": "28.6862738",
"longitude": "77.2217831",
"is_subs": 0
}
]
}
Чтобы
{
"status": "true",
"data": [
{
"event_id": "9",
"location": "Delhi, India",
"title": "test",
"start_time": "2020-07-02 02:08:20",
"end_time": "2020-07-30 02:08:20",
"interest": "test theme",
"interest_desp": "test theme",
"image": "5f06d7a4a53d3.jpg",
"comment": "about test",
"latitude": "28.6862738",
"longitude": "77.2217831",
"is_subs": 0
}
]
}
Или
{
"status": 200,
"data": [
{
"event_id": "9",
"location": "Delhi, India",
"title": "test",
"start_time": "2020-07-02 02:08:20",
"end_time": "2020-07-30 02:08:20",
"interest": "test theme",
"interest_desp": "test theme",
"image": "5f06d7a4a53d3.jpg",
"comment": "about test",
"latitude": "28.6862738",
"longitude": "77.2217831",
"is_subs": 0
}
]
}
Это решит вашу проблему
код для получения ответа на флаттере
Не тестировал, но думаю, сработает
import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'dart:convert';
class Solution extends StatefulWidget {
@override
_SolutionState createState() => _SolutionState();
}
class _SolutionState extends State<Solution> {
Dio dio = new Dio();
bool isLoading = false;
List<DataModelClass> _dataList = [];
Future getData() async {
setState(() {
isLoading = true;
});
var url =
'your api provided by you in your git repo';
var response = await dio.get(url);
var body = json.decode(response.data);
if (response.statusCode == 200) {
for (var item in body['data']) {
DataModelClass data = new DataModelClass.fromJson(item);
_dataList.add(data);
}
setState(() {
isLoading = false;
});
}
}
@override
void initState() {
getData();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(),
);
}
}
// model calss
class DataModelClass {
String eventId;
String location;
String title;
String startTime;
String endTime;
String interest;
String interestDesp;
String image;
String comment;
String latitude;
String longitude;
int isSubs;
DataModelClass(
{this.eventId,
this.location,
this.title,
this.startTime,
this.endTime,
this.interest,
this.interestDesp,
this.image,
this.comment,
this.latitude,
this.longitude,
this.isSubs});
DataModelClass.fromJson(Map<String, dynamic> json) {
eventId = json['event_id'];
location = json['location'];
title = json['title'];
startTime = json['start_time'];
endTime = json['end_time'];
interest = json['interest'];
interestDesp = json['interest_desp'];
image = json['image'];
comment = json['comment'];
latitude = json['latitude'];
longitude = json['longitude'];
isSubs = json['is_subs'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['event_id'] = this.eventId;
data['location'] = this.location;
data['title'] = this.title;
data['start_time'] = this.startTime;
data['end_time'] = this.endTime;
data['interest'] = this.interest;
data['interest_desp'] = this.interestDesp;
data['image'] = this.image;
data['comment'] = this.comment;
data['latitude'] = this.latitude;
data['longitude'] = this.longitude;
data['is_subs'] = this.isSubs;
return data;
}
}