[英]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.