request模块post提交数组的问题
发布于 2 个月前 作者 upupzealot 586 次浏览 来自 问答

业务上接入了融云的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 回复

json: { userId: userId, tags: tags }

回到顶部