跳到主要内容
CNode

request模块post提交数组的问题

问答
Uupupzealot发布于 10 年前最后回复 10 年前
484850

业务上接入了融云的IM服务,服务器需要做一些请求的转发工作 其中有一个tags参数需要传入一个string数组

	POST /user/tag/set.json HTTP/1.1
	Host: api.cn.ronghub.com
	App-Key: uwd1c0sxdlx2
	Nonce: 14314
	Timestamp: 1408706337
	Signature: 890b422b75c1c5cb706e4f7921df1d94e69c17f4
	Content-Type: application/json
	
	{"userId":"31232","tags":["bj","男"]}

我是用request模块来发送post请求的 相关代码是

	setUserTag(userId, tags) {
		const nonce = ...
		const timestamp = ...
		const signature = ...

		let options = { //request options
			url: 'https://api.cn.ronghub.com/user/tag/set.json',
			headers: {
				'App-Key': this.app_key,	// 开发者平台分配的 App Secret。
				nonce: nonce,				//随机数,无长度限制。
				timestamp: timestamp,		//时间戳,从1970年1月1日0点0分0秒开始到现在的秒数。
				signature: signature,		//数据签名。
				'Content-Type': 'application/json'
			},
			form: {
				userId: userId,
				tags: tags
			}
		};
		console.log('tags' + JSON.stringify(tags));

		return request.postAsync(options).spread((res, body)=>{
			console.log('res body:' + JSON.stringify(body));
			return body;
		});
	}

但是总是返回1002(参数错误),猜测问题就是出在这个tags上,因为其他类似的接口(不含数组做参数的)都没有问题 console.log那一句已经验证了之前拿到的tags确实是一个数组。。

查看回复

回复 (4)

U
upupzealot#410 年前
引用 captainblue2013json: { userId: userId, tags: tags }

@captainblue2013 谢了!我试试!

C
captainblue2013#310 年前

json: { userId: userId, tags: tags }

C
captainblue2013#210 年前

不用form

U
upupzealot#110 年前

求救啊

参与回复

登录后即可参与回复。登录