繁体   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