javascript - 使用 NODEJS HTTPS 将 JSON 数据发送到服务器
问题描述
我正在尝试向as提出POST
请求。我已经在客户端完成了它,但不支持. 因此,替代方案是. 我看了一下这个stackoverflow问题,我的代码是:api.telegram.org
path
/bot{token}/sendMessage
XMLHttpRequest
nodejs
XMLHttpRequest
https
nodejs
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.
还有,谢谢。
解决方案
looks like an ssl error. if the request is made through https, change it to http
推荐阅读
- laravel - Laravel - 向数组添加类属性
- aws-amplify - 无法解析“NameStep”中的方法
- r - 如何从我创建的数据框中计算 R 中的股票收益?
- identity - 对所有控制器/操作强制执行双因素身份验证
- python - Jupyter Notebook Octave 内核:%1 不是有效的 Win32 应用程序
- python - 木星笔记本无法启动 - 未找到符号错误
- python - 在 AWS Step Function 状态机中,如何启用 JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS
- javascript - 对象保存在全局变量中,但显示未定义
- spring-boot - Spring-Kafka 使用 DeadLetterPublishingRecoverer 将自定义记录而不是失败记录发送到 DLT
- python - 如何使用 go.Scattergeo 对象(地球)作为绘图以便在同一绘图中绘制轨迹?