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;
  }
}
Другие вопросы по тегам