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

web3.php连接Ropsten测试网络出现cURL超时错误如何解决?

解决方案

  • 替换已下线的Ropsten测试网
    Ropsten以太坊测试网已于2022年正式停止服务,对应的公共节点均已关闭,建议替换为目前仍在维护的Sepolia或Goerli测试网,将Infura RPC地址修改为对应测试网地址即可,例:https://sepolia.infura.io/v3/你的Infura项目ID。修改前请先确认你的Infura项目已开通对应测试网的访问权限。
  • 调整请求超时时间
    本地Ganache节点响应速度快,web3.php默认的1秒超时配置可以正常运行,但远程公共节点响应时间更长,需要手动拉长超时时间,参考代码如下:
public function DecetralizeID(){
    $contractABI = //[{*some abi*}]
    $contractAddress = "0xc17E4f191Fb9000262698eE4cDDE8bF66bFb6AA3";
    $fromAccount = "0x9cdc1E3F896dD416660b7359A0bC81EAE5e1b93a"; 

    // 自定义provider设置30秒超时
    $provider = new \Web3\Providers\HttpProvider(
        new \Web3\RequestManagers\HttpRequestManager('https://sepolia.infura.io/v3/替换为你的完整Infura项目ID', 30)
    );
    $contract = new \Web3\Contract($provider, $contractABI);

    //SHOWLOGSBYOWNER
    $contract->at($contractAddress)->call("showLogsByOwner", $fromAccount, function($err,$data) {
        if ($err !== null) {
            echo 'Error: ' . $err->getMessage();
            return;
        }
        echo 'showLogsByOwner : show id logs by address user :<br>';
        foreach ($data as $dt) {
            foreach($dt as $t) {
                echo $t;
                echo "<br>";
            }
        }
    });
}
  • 校验Infura配置正确性
    你报错日志中的请求地址里的Infura项目ID是被截断的,检查代码中的RPC地址是否存在拼写错误、多余换行、特殊字符,同时确认Infura控制台的项目安全设置中,已将部署Laravel的服务器IP加入白名单,避免Infura拦截请求。
  • 排查服务器网络连通性
    在部署代码的服务器上执行curl命令测试Infura节点连通性:
    curl https://sepolia.infura.io/v3/你的Infura项目ID -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
    如果该命令也返回超时,说明服务器网络无法正常访问Infura,需要调整服务器的防火墙规则或网络代理配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:36:03