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

使用untis-api调用Untis-API时出现ECONNRESET错误的解决方法

解决untis-api调用时出现ECONNRESET错误的方案

我在使用untis-api包访问Untis API时,运行Node.js(v16.15.0)代码出现以下错误:

node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error: read ECONNRESET
    at TLSWrap.onStreamRead (node:internal/stream_base_commons:217:20) {
  errno: -4077,
  code: 'ECONNRESET',
  syscall: 'read'
}

我的代码如下:

const w = require("untis-api");
const e = w.entities;

w.connect("USERNAME", "PASSWORD", "SCHOOL", "URL").then(() => {
    w.getTeachers().then(teachers => {
      console.log(teachers);
    }).catch(err => {
        console.log(err);
    });

    w.logOut();
}).catch(err => {
    console.log(err);
});

解决方案

  • 修正异步执行顺序(核心问题)
    代码里w.getTeachers()是异步操作,但你在调用后立刻执行w.logOut(),导致请求还没完成就断开了连接,直接触发ECONNRESET错误。必须确保登出操作在请求完成后执行:

    const w = require("untis-api");
    const e = w.entities;
    
    w.connect("USERNAME", "PASSWORD", "SCHOOL", "URL")
      .then(async () => {
        try {
          const teachers = await w.getTeachers();
          console.log(teachers);
        } catch (err) {
          console.log(err);
        } finally {
          await w.logOut(); // 确保请求完成后再执行登出
        }
      })
      .catch(err => {
        console.log(err);
      });
    
  • 其他排查方向

    • 检查URL参数格式:Untis API地址通常为https://<学校Untis服务器域名>/WebUntis/jsonrpc.do,确认域名、路径是否正确。
    • 排查网络环境:确认防火墙、代理没有拦截请求,可先在同一网络下访问Untis网页验证连通性。
    • 更新依赖包:执行npm update untis-api更新到最新版本,避免包本身的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:25:25