CoAP服务器无法解析多个Query参数问题求助
问题解决:CoAP请求多查询参数丢失
问题原因
你执行的命令里,&是Shell的特殊字符,会把coap-client -m get coap://127.0.0.1:5683/variable?uid=one放到后台运行,剩下的did=2被当作独立命令执行,导致服务器只接收到第一个查询参数。
解决方案
将包含多个查询参数的CoAP URL用单引号或双引号包裹,避免Shell解析&为特殊字符:
coap-client -m get 'coap://127.0.0.1:5683/variable?uid=one&did=2'
或者:
coap-client -m get "coap://127.0.0.1:5683/variable?uid=one&did=2"
服务器端验证
你的服务器代码中使用url.parse(req.url, true)已经支持解析多查询参数,只要URL完整传递到服务器,就能通过parsedUrl.query获取所有参数。比如在handleVariable函数中可以这样处理:
function handleVariable(req, res) { if (req.method === 'GET') { const parsedUrl = url.parse(req.url, true); const { uid, did } = parsedUrl.query; console.log('uid:', uid, 'did:', did); res.end(`Received uid: ${uid}, did: ${did}`); } }
内容的提问来源于stack exchange,提问作者nithinks
相关产品推荐
相关产品推荐

