You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ethers.js通过AlchemyProvider无法获取区块链数据问题

解决React Native中AlchemyProvider无法接收响应的问题

可能的原因及解决方案

1. 确认API_KEY已正确替换

代码中的API_KEY是占位符,必须替换为你在Alchemy控制台获取的实际密钥。若未替换,请求会被Alchemy拒绝,即便控制台显示有响应,也可能是之前的测试请求,实际应用中的请求是无效的。

替换后的代码示例:

const network = 'goerli'
const provider = new ethers.providers.AlchemyProvider(network, '你的实际Alchemy密钥')

2. 升级ethers.js版本

你当前使用的ethers版本为web/5.6.1,该版本在React Native环境下可能存在网络响应处理的兼容问题。建议升级到ethers v6版本,它对React Native的支持更完善。

升级命令:

npm install ethers@latest
# 或
yarn add ethers@latest

v6版本的初始化代码调整:

import { ethers } from 'ethers';

const network = 'goerli';
const provider = new ethers.AlchemyProvider(network, '你的实际Alchemy密钥');

3. 改用JsonRpcProvider直接发起请求

如果AlchemyProvider的封装仍有问题,可以直接使用JsonRpcProvider指定Alchemy的Goerli节点URL:

const provider = new ethers.providers.JsonRpcProvider(
  `https://eth-goerli.alchemyapi.io/v2/你的实际Alchemy密钥`
);

4. 检查React Native/Expo的网络权限

  • Android:确保AndroidManifest.xml中添加了网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • iOS:调试环境下,确认Info.plist未禁用HTTPS请求(默认允许,无需额外配置,除非修改过ATS设置)。

5. 调试网络请求

使用Expo的Network Inspector(在Expo Dev Tools中开启)或第三方工具(如Charles)抓包,确认应用发送的请求是否正确,以及服务器返回的响应是否真的到达了应用端,以此定位是请求问题还是响应解析问题。


内容的提问来源于stack exchange,提问作者duskdusk13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 11:30:52