Ethereum Chainlink核心适配器路径问题:httpGet uint256从treasury.gov API返回0
我正在尝试使用Chainlink连接到一个API,以从下面的请求列表中的URL获取uint。问题是,每次“体积”值返回0时。我觉得这个问题是两件事之一:Ethereum Chainlink核心适配器路径问题:httpGet uint256从treasury.gov API返回0,ethereum,solidity,chainlink,Ethereum,Solidity,Chainlink,我正在尝试使用Chainlink连接到一个API,以从下面的请求列表中的URL获取uint。问题是,每次“体积”值返回0时。我觉得这个问题是两件事之一: oracle不喜欢访问阵列。我试过“数据[0]”和“数据.0”。“文档”页面上的这两项工作都有效 API返回的是字符串而不是数字(因为数字用引号括起来)。我也尝试了bytes32作业,只返回0x0。其他StackOverflow帖子也显示了以数字形式读取字符串的预言 以下代码片段是对Chainlink文档中显示的“在remix上部署”代码所做的
这些合同通过混音/元掩码部署在Kovan上,有大量链接为合同提供资金。我可能做错了什么?有几个问题:
HttpGet
任务处停止。我已经在我的节点上测试了它,下面是我得到的确切错误:HTTP响应太大,必须小于32768字节。如果你能影响这个,那就太好了。否则,您将需要拥有自己的节点,该节点将返回与上述限制匹配的较短响应
函数请求数据(字符串内存id,字符串内存字段)公共{
Chainlink.Request memory Request=buildChainlinkRequest(作业ID、地址(this)、this.fulldata.selector);
请求。添加(“获取”https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/avg_interest_rates?sort=-记录日期);
字符串[]内存路径=新字符串[](3);
路径[0]=“数据”;
路径[1]=\u id;
路径[2]=\u字段;
addStringArray(“路径”,路径);
int timesAmount=10**18;
请求。附加(“次数”,timesAmount);
sendChainlinkRequestTo(oracle、请求、费用);
}
我还添加了\u id
和\u field
作为函数参数来查询任何对象的任何字段。请注意,只有在您能够找出如何获得更短的响应时,这才有效
request.add("get", "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/avg_interest_rates?sort=-record_date");
request.add("path", "data.0.avg_interest_rate_amt");