首页 > 解决方案 > 使用 NODEJS HTTPS 将 JSON 数据发送到服务器

问题描述

我正在尝试向as提出POST请求。我已经在客户端完成了它,但不支持. 因此,替代方案是. 我看了一下这个stackoverflow问题,我的代码是:api.telegram.orgpath/bot{token}/sendMessageXMLHttpRequestnodejsXMLHttpRequesthttpsnodejs


var https = require("https");
var bot_token = "1677044698:AAE3GG-Tpfwgra41lenP5sw0HCIX-ZoTlLA";

var params = {
  "chat_id": "1105434113",
  "text": "The bot is working..."
}

var postData = JSON.stringify(params);

var options = {
  hostname: "api.telegram.org",
  path: `/bot${bot_token}/sendMessage`,
  port: 80,   
  method: 'POST',
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
}

var req = https.request(
options,
  (res)=>{
    console.log(`STATUS: ${res.statusCode}`);
    console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
    res.setEncoding('utf8');
    res.on('data', (chunk) => {
      console.log(`BODY: ${chunk}`);
    });
    res.on('end', () => {
      console.log('No more data in response.');
    });
  }
)
req.on("error", (err)=>{
  console.log(err)
})


req.write(postData);
req.end();

但我收到一个错误,我不知道。

Error: write EPROTO 5912:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:

    at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:94:16) {
  errno: -4046,
  code: 'EPROTO',
  syscall: 'write'
}
Do not worry about the exposed bot-token, I have revoked it.

还有,谢谢。

标签: javascriptnode.jsposthttpstelegram-api

解决方案


looks like an ssl error. if the request is made through https, change it to http


推荐阅读