首页 > 解决方案 > 此代码中的 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 并将其替换为其他内容,但我不知道是什么

标签: node.js

解决方案


根据请求模块文档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()文档)。您可以在控制台中检查标题和状态代码。


推荐阅读