在GraphQL Flutter中如何为HTTP Headers传递参数?
在Flutter Apollo Client中传递HTTP Headers
方法一:单个Query请求自定义Headers
直接在QueryOptions中添加headers参数,传入键值对格式的Header信息即可:
Query( options: QueryOptions( document: gql(userGraphQL), variables: { "...": "..." }, // 添加HTTP Headers headers: { "Authorization": "Bearer your_access_token", "X-App-Version": "1.0.0" }, ), builder: ... )
headers是Map<String, String>类型,可根据需求添加任意自定义Header。
方法二:全局配置默认Headers(所有请求生效)
如果所有GraphQL请求都需要携带相同的Header(比如全局认证token),可以在初始化ApolloClient时通过HttpLink配置全局默认Header:
// 创建HttpLink并配置全局Headers final HttpLink httpLink = HttpLink( uri: 'https://your-graphql-server.com/graphql', headers: { "Authorization": "Bearer global_auth_token", "Content-Type": "application/json" }, ); // 初始化ApolloClient final ApolloClient apolloClient = ApolloClient( link: httpLink, cache: InMemoryCache(), );
如果单个请求需要覆盖全局Header,只需在该请求的QueryOptions中重新定义对应Header字段即可,局部配置会优先于全局配置。
内容的提问来源于stack exchange,提问作者Happy
相关产品推荐
相关产品推荐

