
选一个输入简单的阅读练习
一份实用的区块链编程教程,可以先让读者看懂请求,而不是立刻部署合约。以太坊JSON-RPC文档列出的eth_blockNumber不需要方法参数,返回客户端当前所处的最近区块编号。它适合用于辨认请求字段,不需要提供私钥、恢复短语或签署交易。
先在本地纸面练习中准备请求对象:jsonrpc写为2.0,method写为eth_blockNumber,params为空数组,再配一个请求编号id。这里不连接公共节点,也不把任何演示返回值当作实时区块高度。正式接入时还需按所用服务的当前文档确认支持范围与访问条件。
拿到HTTP响应只是第一层
使用浏览器fetch读取接口时,获得Response对象并不意味着所有步骤成功。MDN说明,网络错误可能使Promise拒绝,但服务器返回404这样的HTTP状态时,fetch仍可能正常返回Response。因此要读取status或ok,不能只看是否进入catch。
这也解释了一个常见困惑:地址拼错后,页面可能返回一份完整HTML错误页,程序确实收到了内容,却没有收到预期接口数据。原生HTTP结果应保留,不能把它直接显示为“链上查不到记录”;错误来自哪一层,决定了下一步应该检查什么。

JSON能解析,也可能是方法错误
第二层是正文格式。检查响应类型后,调用response.json()还可能因为正文不是有效JSON而失败。第三层才是解码后的RPC对象:有内容、有合法JSON,都不自动等于返回了这个方法需要的result。
EIP1474的错误约定使用包含code与message的error对象,例如把方法不存在标为-32601。本次阅读时该提案状态为Stagnant,因此这里仅借它说明错误对象的阅读方式,不能据此声称所有当前客户端已完整统一。实际错误码与支持方法仍须对照正在使用的实现。
先用三份假设响应检验判断顺序
可以设计三个不联网的小练习:第一份是HTTP404加错误页;第二份是HTTP200加无法解析的正文;第三份是HTTP200加带error字段的JSON。预期分别落在状态检查、正文解析、方法错误处理,而不是全部被包装成一个空白结果。这些是学习用的假设输入,不是本次接口实测。
调试时还要注意响应体通常不能直接重复读取。MDN说明,第一次读取后数据流已被消费;若既想记录又想处理,可先保留一次解析结果,确有需要时在读取前克隆响应。把这几层解释清楚,再扩展更多查询方法,远比用一个“连接成功”提示代替完整结果检查可靠。