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

如何使用node-libcurl的NETRC选项实现带认证的HTTP GET请求

问题排查与解决方案

针对你遇到的返回200但内容为认证页面的问题,按以下步骤排查:

1. 修复.netrc文件权限

Unix-like系统中,curl会忽略权限过于开放的.netrc文件(安全限制),执行以下命令设置正确权限:

chmod 600 .netrc

2. 调整NETRC选项值

node-libcurl中NETRC设为true对应curl的CURLOPT_NETRC=1(仅在无其他认证时使用),改为强制使用netrc的模式:

curl.setOpt('NETRC', 2); // 对应CURLOPT_NETRC_REQUIRED

3. 添加Cookie支持

Earthdata认证依赖Cookie维持会话,重定向时需要保留Cookie,添加以下配置:

curl.setOpt('COOKIEJAR', './cookies.txt');
curl.setOpt('COOKIEFILE', './cookies.txt');

4. 启用调试日志定位问题

添加verbose选项查看请求细节,确认认证头是否在重定向时正确发送:

curl.setOpt('VERBOSE', true);

5. 用原生curl命令验证

先脱离node-libcurl测试,确认.netrc和凭证有效:

curl -L --netrc-file .netrc https://cddis.nasa.gov/archive/gps/data/highrate/2022/331/22d/00/ABMF00GLP_S_20223310000_15M_01S_MO.crx.gz -o test.gz

如果命令行能成功下载,说明问题出在node-libcurl的配置;如果失败,检查.netrc的凭证是否正确(确保替换了<username>和<password>为实际值,无多余符号)。

6. 完整调整后的代码示例

const { Curl } = require('node-libcurl');

async function start() {
    const curl = new Curl();

    curl.setOpt('URL', 'https://cddis.nasa.gov/archive/gps/data/highrate/2022/331/22d/00/ABMF00GLP_S_20223310000_15M_01S_MO.crx.gz');
    curl.setOpt('FOLLOWLOCATION', true);
    curl.setOpt('NETRC', 2); // 强制使用netrc
    curl.setOpt('NETRC_FILE', '.netrc');
    curl.setOpt('MAXREDIRS', 5);
    curl.setOpt('SSL_VERIFYPEER', false);
    curl.setOpt('SSL_VERIFYHOST', false);
    curl.setOpt('COOKIEJAR', './cookies.txt'); // 保存Cookie
    curl.setOpt('COOKIEFILE', './cookies.txt'); // 加载Cookie
    curl.setOpt('VERBOSE', true); // 调试日志
    
    curl.on('end', function (statusCode, data, headers) {
      console.info(statusCode);
      console.info('---');
      console.info(data.length);
      console.info('---');
      console.info(data.slice(0, 200)); // 仅打印开头部分,避免输出过多
      console.info('---');
      console.info(this.getInfo('TOTAL_TIME'));
      
      this.close();
    });

    curl.on('error', curl.close.bind(curl));
    curl.perform();
}

start();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 08:40:32