node.js - 此代码中的 GET/POST 语法在哪里?
问题描述
我的代码几乎准备好了,但我的朋友说它是作为 GET 而不是作为 POST 运行的。我在此代码中的任何地方都看不到 GET,那么如何将其更改为 POST?
const request = require("request");
const username = "myUserName";
const password = "myPassword";
const options = {
url: "https://siteToPostTo.com/api/v1/statuses",
auth: {
user: username,
password: password
},
body: JSON.stringify({
status: 'automated message to post'
})
};
request(options, function(err, res, body) {
if (err) {
console.dir(err);
return;
}
console.dir("headers", res.headers);
console.dir("status code", res.statusCode);
console.dir(body);
});
cmd 错误信息是“'headers' 'status code' '<"error":"Not implemented">'
编辑:我尝试在语法中的 3 个不同位置添加方法:“POST”,但仍然出现相同的错误
编辑:现在几乎可以工作了,我得到的错误是“'headers''status code''<"errors":<"detail":"Internal Server Error">>'"
编辑:好的,好像快到了,这是最后一个错误“状态代码 400 <“错误”:<“详细信息”:“内部服务器错误”>>
编辑:在正文部分,我被告知要删除 JSON.stringify 并将其替换为其他内容,但我不知道是什么
解决方案
根据请求模块文档,GET
是默认的 HTTP 方法。
如果你想使用POST
方法,你应该在options
对象中指定它。
const request = require('request');
const username = 'myUserName';
const password = 'myPassword';
const options = {
method: 'POST',
url: 'https://siteToPostTo.com/api/v1/statuses',
auth: {
user: username,
password: password
},
body: JSON.stringify({
status: 'automated message to post'
})
};
request(options, function(err, res, body) {
if (err) {
console.dir(err);
return;
}
console.log('headers', res.headers);
console.log('status code', res.statusCode);
console.log(body);
});
另外,更改console.dir()
为console.log()
(文档)。您可以在控制台中检查标题和状态代码。
推荐阅读
- python - 从我的网站页面获取文本:Python 脚本
- python - workon venv 和 venv\Scripts\activate 有什么区别吗
- javascript - 找不到 face-api.js 的 404 页面
- hyperledger-fabric - Hyperledger Fabric:在运行 raft 网络中添加 Orderer
- grid - 如何从销售订单网格页面中的自定义字段中获取数据
- c++ - C++ - 除法后从浮点数到整数的不准确转换
- numpy - Numpy:多元索引?
- java - 如何将多个列作为 JSON 与其他列一起返回
- google-app-engine - OAuth2.0 redirect_uri 的参数值无效:缺少方案
- linux - zip 中的排除标志未按预期排除目录