javascript - https post 在 javascript 中类似于带有 header 和参数的curl -d 和 "request"模块nodejs npm

标签 javascript node.js http post npm

我想在javascript请求中创建HTTP POST,就像下面的curl(传递一些参数)到Django服务器一样。

curl -X POST --header 'Content-Type: application/x-www-form-urlencoded' --header 'Accept: application/json' -d 'token=Rh7JARH&param_id=2' 'http://localhost:8000/api/test/param_id'

这是我创建 JavaScript 代码的尝试。请注意我正在使用 npm“请求”模块

var request = require('request');
var jsonObject = {
    'token': 'Rh7JARH',
    'param_id': 2   
};
var jsonData = JSON.stringify(jsonObject);
let url = "http://localhost:8000/api/test/param_id";  
request.post({
  headers: {
    'content-type': 'application/x-www-form-urlencoded'
  },
  url: url,
  body: jsonData
}, function(error, response, body) {
  if (error) {
    console.log("error");
  } else {
    console.log("OK");
    var jsonResponse = JSON.parse(body);
    console.log(jsonResponse);
  }
});  

但是 token 和 param_id 是一个问题,在服务器上它提示

django.utils.datastructures.MultiValueDictKeyError: "'token'"

我想使用 npm 请求模块创建与 javascript 中相同的curl HTTP POST,如示例中所示。我想我已经很接近了,它可能是 jsonObject

最佳答案

下面的代码应将所需的参数 POST 到服务器。我已经在我自己的服务器上对此进行了测试,并且 url 编码的参数已正确解析:

const request = require('request');

const headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Accept': 'application/json'
};

const options = {
    url: 'http://localhost:8000/api/test/param_id',
    method: 'POST',
    headers: headers,
    body: 'token=Rh7JARH&param_id=2'
};

request(options, (error, response, body) => {
    if (error) {
        console.error("An error has occurred:", error);
    } else {
        console.log("Response:", body);
    }
});

关于javascript - https post 在 javascript 中类似于带有 header 和参数的curl -d 和 "request"模块nodejs npm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58814502/

相关文章:

node.js - NodeJS 缓冲区从字节中读取位

node.js - 加密 Node 库更新是什么意思?

ruby-on-rails - 识别 HTTP_USER_AGENT 是它的浏览器还是 facebook 机器人?

javascript - 无法删除 Javascript 中 event.data 附加的 jQuery 事件监听器

javascript - 迁移到 TypeScript 后 Jest 测试无法正常工作

javascript - 从 Node 中的 Keras JS 加载 MNIST 数据集

java - Spring中如何使用HttpRequestInterceptor?

javascript - 如何在弹出消息框的按钮上设置样式

node.js - Angular 4 具有通用 "Unexpected token import"

http - 如何找出数据包的 HTTP header 长度?