You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中使用request模块将JSON对象追加到URL的方法

在Node.js中使用request模块将JSON对象追加到URL的方法

没问题,我来帮你搞定这个需求——在Node.js里用request模块把JSON对象作为查询参数追加到URL里,其实有两种常用的方法,我给你详细拆解一下:

第一步:先安装request模块

如果你还没安装这个包,先在项目目录下执行:

npm install request

注意:request模块目前已经被标记为deprecated(不再维护),如果是新项目,更推荐使用axios或node-fetch这类仍在维护的HTTP库,但如果是维护旧项目,下面的方法依然完全适用。

方法一:手动构建编码后的URL

这种方式适合你需要完全掌控URL构建过程的场景,核心是把JSON对象转成字符串后,用encodeURIComponent处理特殊字符,再拼到URL的查询参数里:

const request = require('request');

// 定义你要传递的JSON数据
const jsonPayload = {
  MID: "QUIbcctvgfvfgfvgdf",
  ORDERID: "6d22b2c2-a543-459c-9f83-cbeeb7efcd82",
  TXNTYPE: "REFUND",
  REFUNDAMOUNT: "1",
  TXNID: "20180508111212800110168695724952384",
  REFID: "55",
  CHECKSUM: "Z+LCp3lqjkZWHLGX+NtPWJpP7srhMT47Cjqj8yMg1LoQgVJ3QpqbXZAAupXCppcLIp0Zm0cIMSvmKy+d0KUm8E9iUI4on37xUfic6n6um5Q="
};

// 把JSON转成字符串并进行URL编码(处理双引号、加号等特殊字符)
const encodedJson = encodeURIComponent(JSON.stringify(jsonPayload));

// 拼接成完整的请求URL
const targetUrl = `https://secure.paytm.in/oltp/HANDLER_INTERNAL/REFUND?JsonData=${encodedJson}`;

// 发起GET请求
request(targetUrl, (error, response, body) => {
  if (error) {
    console.error('请求出错啦:', error);
    return;
  }
  console.log('响应状态码:', response.statusCode);
  console.log('返回内容:', body);
});

方法二:利用request的qs参数自动处理(更推荐)

request模块自带了qs配置项,可以自动帮你处理查询参数的编码和拼接,不用手动操作URL,更简洁也不容易出错:

const request = require('request');

const jsonPayload = {
  MID: "QUIbcctvgfvfgfvgdf",
  ORDERID: "6d22b2c2-a543-459c-9f83-cbeeb7efcd82",
  TXNTYPE: "REFUND",
  REFUNDAMOUNT: "1",
  TXNID: "20180508111212800110168695724952384",
  REFID: "55",
  CHECKSUM: "Z+LCp3lqjkZWHLGX+NtPWJpP7srhMT47Cjqj8yMg1LoQgVJ3QpqbXZAAupXCppcLIp0Zm0cIMSvmKy+d0KUm8E9iUI4on37xUfic6n6um5Q="
};

// 用qs参数传递查询参数,request会自动编码并拼接
request({
  url: 'https://secure.paytm.in/oltp/HANDLER_INTERNAL/REFUND',
  qs: {
    JsonData: JSON.stringify(jsonPayload)
  }
}, (error, response, body) => {
  if (error) {
    console.error('请求出错啦:', error);
    return;
  }
  console.log('响应状态码:', response.statusCode);
  console.log('返回内容:', body);
});

关键注意点

  • 必须对JSON字符串进行URL编码:因为JSON里的双引号、加号、斜杠等字符属于URL的特殊字符,如果不编码,会导致服务器无法正确解析参数。
  • 如果你的JSON数据里有特殊字符(比如示例中的CHECKSUM里的加号),手动编码时一定要用encodeURIComponent,而不是encodeURI,前者会处理更多特殊字符。

内容的提问来源于stack exchange,提问作者roh_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:14:17