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

如何在Node.js程序中正确调用部署在Heroku的概率计算API?

Node.js 调用Heroku部署API的正确实现方案

错误排查方向

invalid URI错误通常由以下两种原因导致:

  • 请求URL拼写错误,存在多余空格、换行或特殊转义字符
  • request包的参数配置格式错误,URI字段名写错或传入非字符串类型值

1. 使用request包实现(该包已官方弃用,仅兼容旧项目)

首先安装依赖:

npm install request

server.js 代码示例:

const request = require('request');

// 替换为实际业务传入的5个数值参数
const value1 = 1.0, value2 = 2.3, value3 = 0.5, value4 = 4.2, value5 = 3.1;

const requestOptions = {
  uri: 'https://apibc1.herokuapp.com/predict',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    Values: [[value1, value2, value3, value4, value5]]
  })
};

request(requestOptions, (error, response, body) => {
  if (error) {
    console.error('请求失败:', error);
    return;
  }
  if (response.statusCode === 200) {
    const predictResult = JSON.parse(body);
    console.log('概率结果:', predictResult);
  } else {
    console.log('接口异常,状态码:', response.statusCode);
  }
});

2. 推荐使用axios实现(当前主流HTTP请求库)

首先安装依赖:

npm install axios

server.js 代码示例:

const axios = require('axios');

// 替换为实际业务传入的5个数值参数
const value1 = 1.0, value2 = 2.3, value3 = 0.5, value4 = 4.2, value5 = 3.1;

axios.post('https://apibc1.herokuapp.com/predict', {
  Values: [[value1, value2, value3, value4, value5]]
}, {
  headers: {
    'Content-Type': 'application/json'
  }
}).then(res => {
  console.log('概率结果:', res.data);
}).catch(err => {
  console.error('请求失败:', err);
});

注意事项

  • 始终使用JSON.stringify()处理请求体,不要手动拼接JSON字符串,避免引号转义错误
  • 若仍报URI错误,可打印传入的URI参数确认没有多余非法字符
  • Heroku免费实例会自动休眠,首次请求可能响应较慢,可按需添加超时配置

内容的提问来源于stack exchange,提问作者Juan Felipe Jaramillo Losada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:27:01