[英]Flutter GraphQL - OperationException(linkException: ResponseFormatException(originalException: FormatException: Unexpected character (at character 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.