如何在 NodeJS 的同步请求中添加参数

How to add parameters in NodeJS' sync-request

我试过以下方法:

var request = require('sync-request');

var res = request('POST', 'http://someurl.com', {

  body: {

    'city': 'Dubai'

  }

});

但是没有在Server端获取到任何参数

我自己解决了(通过如下修改选项):

var request = require('sync-request');

var res = request('POST', 'http://someurl.com', {

  headers: {       
    'content-type': 'application/x-www-form-urlencoded'
  },

  body: 'city=Dubai'

});

效果很好。

这对我有用:

request('POST', 'http://someurl.com', {
        json :{
            "key": value
        }
    }); 

在后端(在我的例子中是 Django),我刚刚使用 request.body.

提取了请求正文

如果你想要一个 strongly-typed 客户端,你可以试试 ts-sync-request.

NPM:https://www.npmjs.com/package/ts-sync-request

这个库是 sync-request 的包装器。

您可以附上 header 并提出如下请求:

import { SyncRequestClient } from 'ts-sync-request/dist'
let url = "http://someurl.com";

let response = new SyncRequestClient()
                            .addHeader("content-type", "application/x-www-form-urlencoded")
                        .post<string, MyResponseModel>(url, "city=Dubai");