Получение ошибки при запросе данных с http

#flutter #http #dart #web #network-programming

Вопрос:

Я не знаю, что мне нужно делать, я попытался изменить свой URL. Но я все еще получаю эту ошибку.

Вот в чем ошибка.

 Exception has occurred.
FormatException (FormatException: Unexpected character (at character 1)
<!DOCTYPE html>
^
)
 

Ниже приведен код, в котором я запрашиваю данные

     Map<dynamic, dynamic> venuesData;

  Future<void> fetchAndSetVenues() async {
    try {
      final response = await http.get(Uri.parse(venuesURL));
      final extractedData = json.decode(response.body) as Map<dynamic, dynamic>;
      venuesData = extractedData;
      print(venuesData);
    } catch (error) {
      throw error;
    }
  }

  // events
  Map<dynamic, dynamic> eventsData;

  Future<void> fetchAndSetEvents() async {
    try {
      final response = await http.get(Uri.parse(eventsURL));
      final extractedData = json.decode(response.body) as Map<dynamic, dynamic>;
      eventsData = extractedData;
    } catch (error) {
      throw error;
    }
  }
 

И вот мои URL-адреса

 String eventsURL = 'http://medeni.art/api/v1/events?page=1'

String venuesURL = 'http://medeni.art/api/v1/venues'
 

Комментарии:

1. всем привет. вы добавили недостаточно кода, чтобы люди могли помочь. В предоставленном вами коде нет никаких проблем. добавьте полный код.

Ответ №1:

Эта ошибка возникает в json.decode методе. По какой-либо причине, если http-запрос получит ошибку, json.decode его не следует вызывать. Вы можете проверить код статуса ответа на запрос.

 import 'package:http/http.dart' as http;

var url = Uri.parse('https://example.com/whatsit/create');
var response = await http.post(url, body: {'name': 'doodle', 'color': 'blue'});
if(response.statusCode ==200){
  final result = json.decode(response.body);
}

 

Комментарии:

1. Эй, @RezaM, спасибо тебе! Это решило проблему.