Исключение FormatException: неожиданный символ (на символе 1) при проверке версии приложения

#flutter

#flutter

Вопрос:

Я хочу проверить последнюю версию приложения в магазине Google Play и обновить приложение, если доступна новая версия. Ниже приведен код для проверки текущей версии.

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

class GetLatestAppVersion {
http.Client client = http.Client() ;

bool success;
String message;
String version;
String minAppVersion;
String about;

Future<void> call() async {
try {
  var response = await client.get("https://play.google.com/store/apps/details?id=*********",
  );

  var result = jsonDecode(response.body);

  if (result['success'] != null) {
    success = result['success'];
    message = result['message'];

    if (response.statusCode == 200) {
      version = result["latestAppVersion"]["Version"];
      minAppVersion = result["latestAppVersion"]["MinAppVersion"];
      about = result["latestAppVersion"]["About"];
    }
    else
      print(response.statusCode);
  }
} catch(e)
print(e)
  

}
}

Когда я запускаю этот код, код состояния отображается как 200, но я получаю следующую ошибку:

 Unhandled Exception: FormatException: Unexpected character (at character 1)
[        ] E/flutter (  988): <!doctype html><html lang="en" dir="ltr"><head><base 
href="https://play.goo...
  

Где я ошибаюсь?

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

1. Потому что вы пытаетесь декодировать html-ответ. URL не отвечает JSON, он возвращает содержимое html

2. Итак, что мне делать вместо этого?

3. Кажется, вы твердо понимаете, как будет выглядеть ответ, который вы ожидаете . Кто бы вам это ни сказал, перейдите к этому источнику и спросите, что вам нужно сделать, чтобы получить этот ответ.

4. @ShivanshiVerma вместо этого вы можете использовать этот пакет pub.dev/packages/in_app_update он проверяет наличие нового обновления приложения