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

如何在Node.js中实现发送XML文件并保存响应的curl命令功能

在Node.js中实现指定curl命令的功能

你提供的curl命令作用是:切换到C:/test/目录,读取C:/test/Basic/SPND.xml中的XML数据,以POST方式发送到localhost:9001,最后将服务器响应写入C:/test/Basic/Result.xml文件。下面提供两种Node.js实现方案:

方案一:使用Node.js原生http模块(无额外依赖)

无需安装第三方包,直接用内置的http和fs模块实现:

const fs = require('fs');
const http = require('http');

// 同步读取XML文件内容
const xmlContent = fs.readFileSync('C:/test/Basic/SPND.xml', 'utf8');

// 配置请求参数
const requestOptions = {
  hostname: 'localhost',
  port: 9001,
  path: '/',
  method: 'POST',
  headers: {
    'Content-Type': 'application/xml',
    'Content-Length': Buffer.byteLength(xmlContent)
  }
};

// 发起请求
const req = http.request(requestOptions, (res) => {
  let responseBuffer = '';

  // 分段接收响应数据
  res.on('data', (chunk) => {
    responseBuffer += chunk;
  });

  // 响应接收完成后写入文件
  res.on('end', () => {
    fs.writeFileSync('C:/test/Basic/Result.xml', responseBuffer, 'utf8');
    console.log('响应已写入Result.xml文件');
  });
});

// 监听请求错误
req.on('error', (err) => {
  console.error('请求发送失败:', err);
});

// 发送XML数据并结束请求
req.write(xmlContent);
req.end();

方案二:使用axios(代码更简洁)

axios是常用的HTTP请求库,代码更易读,支持Promise和async/await语法,需要先安装:

npm install axios

实现代码:

const fs = require('fs');
const axios = require('axios');

async function handleXmlRequest() {
  try {
    // 读取XML文件
    const xmlContent = fs.readFileSync('C:/test/Basic/SPND.xml', 'utf8');
    
    // 发送POST请求
    const response = await axios.post('http://localhost:9001', xmlContent, {
      headers: {
        'Content-Type': 'application/xml'
      }
    });
    
    // 将响应内容写入目标文件
    fs.writeFileSync('C:/test/Basic/Result.xml', response.data, 'utf8');
    console.log('响应已成功保存到Result.xml');
  } catch (error) {
    console.error('操作出错:', error.message);
  }
}

// 执行函数
handleXmlRequest();

注意事项

  • 若XML文件体积较大,建议使用流式操作(fs.createReadStream和fs.createWriteStream),避免一次性读取大文件导致内存占用过高
  • 确保C:/test/Basic/目录存在,否则写入文件会报错,可提前用fs.mkdirSync('C:/test/Basic/', { recursive: true })创建目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:06:43