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

PHP调用ETS2遥测服务器API GET请求遇连接判断问题求助

ETS2遥测API PHP连接问题

我玩ETS2时用Truckers MP的API一切正常,但想用ETS2遥测服务器API获取游戏运行时的遥测数据展示到个人网站。现在用的PHP代码运行后一直显示“未连接”,附上代码。我正在学习API和Java相关知识,已经试过不同写法、参考示例和谷歌搜索,问题还是没解决。

代码如下:

$json = file_get_contents('http://iltelemetry.inet-developments.org:25555/api/ets2/telemetry');
$data = json_decode($json);
            
foreach($data->game as $conn){
}
$conn = $game->connected;
if ($conn == 'true'){
    echo 'Connected to telemetry';
}
else{
    echo 'Not Connected to telemetry';
}
$conn = $data->response->connected;
$game = $data->response->gameName;
echo'<li id="fleet" >';
echo '<center>Connected: '. $conn . '<p></center>';
echo '<center>Game Name: '. $game . '<p></center>';
echo'</li>';

问题排查与修复建议

1. 先明确API返回的JSON结构

直接在浏览器访问http://iltelemetry.inet-developments.org:25555/api/ets2/telemetry,查看返回的字段层级。你代码里一会儿用$data->game,一会儿用$data->response,明显是对API返回结构不清晰,这是核心问题之一。

2. 代码里的明显错误

  • 空循环foreach($data->game as $conn){}完全没用,而且$game变量从未定义,后面$conn = $game->connected;必然触发错误,这也是一直显示“未连接”的直接原因。
  • file_get_contents可能因PHP配置(如allow_url_fopen关闭)、网络或API限制失败,没有错误处理的话根本不知道问题出在请求环节还是解析环节。

修复后的示例代码

// 先处理API请求的错误情况
$json = file_get_contents('http://iltelemetry.inet-developments.org:25555/api/ets2/telemetry');
if ($json === false) {
    echo '无法连接到遥测API';
    exit;
}

// 解析JSON并判断是否成功
$data = json_decode($json);
if ($data === null) {
    echo 'API返回数据格式错误';
    exit;
}

// 先打印完整数据,确认字段结构(调试用,上线可删除)
// print_r($data);

// 安全获取字段,避免未定义报错
$isConnected = isset($data->response->connected) ? $data->response->connected : false;
$gameName = isset($data->response->gameName) ? $data->response->gameName : '未知';

// 连接状态判断
echo $isConnected ? '已连接到遥测' : '未连接到遥测';

// 输出页面内容
echo '<li id="fleet">';
echo '<center>Connected: '. ($isConnected ? 'true' : 'false') . '</p></center>';
echo '<center>Game Name: '. $gameName . '</p></center>';
echo '</li>';

额外优化建议

如果file_get_contents请求失败,换成cURL兼容性更好:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://iltelemetry.inet-developments.org:25555/api/ets2/telemetry');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close($ch);

// 后续解析逻辑和上面一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:28:28