使用flutter_graphql调用Shopify Storefront API时uri参数未定义报错如何解决
错误原因
你参考的是flutter_graphql旧版本的示例代码,从v5.0.0版本迭代后,HttpLink构造函数的uri命名参数已被重命名为url,因此触发参数未定义的报错。
解决方案
方案1:适配新版本写法(推荐)
直接将参数名从uri替换为url即可保留传身份令牌的逻辑,适配Shopify Storefront API的完整示例如下:
void main() { HttpLink link = HttpLink( // 替换原uri参数为url url: 'https://<你的店铺前缀>.myshopify.com/api/2024-07/graphql.json', headers: <String, String>{ // Shopify Storefront API需使用专属请求头传令牌,不要用Bearer格式 'X-Shopify-Storefront-Access-Token': '<你的Storefront API令牌>', 'Content-Type': 'application/json', }, ); }
注意:如果你继续使用原来的
Authorization: Bearer请求头,Shopify接口会返回401未授权错误,必须替换为上面示例的专属请求头。
方案2:锁定依赖版本(临时兼容)
如果不想调整现有代码逻辑,可以在pubspec.yaml中把flutter_graphql依赖锁定到4.x版本,就能继续使用uri参数:
dependencies: flutter_graphql: ^4.1.1
修改配置后执行flutter pub get重新拉取依赖即可。
内容的提问来源于stack exchange,提问作者orgee
相关产品推荐
相关产品推荐

