簡體   English   中英

Flutter OperationException(linkException: ResponseFormatException(originalException: FormatException: 輸入意外結束(在字符 1 處)

[英]Flutter OperationException(linkException: ResponseFormatException(originalException: FormatException: Unexpected end of input (at character 1)

以前我使用的是graphql版本 3.1.0,它工作正常,能夠按預期接收請求,但最近我不得不將我的 flutter 版本更新到 2.10.3 和所有其他包,包括 graphql。

現在我正在使用 v.5.1.0,但突然出現此錯誤。

僅將 documentNode 更改為 Query 中的 document。 我根據文檔構建了請求。

主要.dart

 @override
  void initState() {
    _appSettingsManager.loadSettings();
    GraphQLRepository.instance.initializeClient();
    super.initState();
  }

GraphQLProvider(client: GraphQLRepository.instance.graphQLClientValueNotifier,child: MaterialApp....

Graphql 資料庫

class GraphQLRepository {
  factory GraphQLRepository() {
    return instance;
  }

  GraphQLRepository._();

  static final GraphQLRepository instance = GraphQLRepository._();
  GraphQLClient _graphQLClient;
  ValueNotifier<GraphQLClient> _graphQLClientValueNotifier;

  GraphQLClient get graphQlClient => _graphQLClient;
  ValueNotifier<GraphQLClient> get graphQLClientValueNotifier =>
      _graphQLClientValueNotifier;

  void initializeClient() {
    _graphQLClientValueNotifier = GraphqlClient.initializeClient();
    _graphQLClient = _graphQLClientValueNotifier.value;
    return;
  }
}

客戶

class GraphqlClient {
  static String _token;


  static final HttpLink httpLink = HttpLink(
     serverUrl,
  );

  static final AuthLink authLink = AuthLink(getToken: () async {
    _token = 'Bearer $accountKey, Bearer $sessionKey';
    return _token ?? '';
  });

  static final Link link = authLink.concat(httpLink);

  static ValueNotifier<GraphQLClient> initializeClient() {
    final policies = Policies(
      fetch: FetchPolicy.networkOnly,
    );
    
    final ValueNotifier<GraphQLClient> client = ValueNotifier<GraphQLClient>(
      GraphQLClient(
        cache: GraphQLCache(store: HiveStore()),
        link: link,
        defaultPolicies: DefaultPolicies(
          watchQuery: policies,
          query: policies,
          mutate: policies,
        ),
      ),
    );
    return client;
  }
}

回復

{
  "data": {
    "balanceList": {
      "data": [
        {
          "currency": "GBP",
          "amount": 1000,
          "pendingAmount": 199,
          "holdAmount": 0,
          "availableBalance": 801
        },
        {
          "currency": "EUR",
          "amount": 1000000,
          "pendingAmount": 647,
          "holdAmount": 0,
          "availableBalance": 999353
        }
      ]
    }
  }
}

以前我使用的是graphql版本 3.1.0,它工作正常,能夠按預期接收請求,但最近我不得不將我的 flutter 版本更新到 2.10.3 和所有其他包,包括 graphql。

歡迎來到現在。

嘗試查看遷移指南https://github.com/zino-hofmann/graphql-flutter/blob/main/changelog-v3-v4.md這將解決您的問題!

此外,您的查詢需要包含__typename ,如示例https://github.com/zino-hofmann/graphql-flutter/blob/main/packages/graphql/README.md#query中所述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM