NodeJS的QueryString的bug要怎么解决
我用了requestify,然后他用了QueryString来解析uri。 问题是这个解析器有一个bug。 我用他来请求百度的登录地址:
注意到参数中的?getapi了吗? 这个参数!!很重要所以说两边,他是?getapi后面没有=,也没有别的什么。 这是百度用来做router的。 然后在QueryString里面转一圈之后,直接变成了
path: ‘/v2/api/?getapi=&tpl=mn&apiver=v3&class=login&tt=&logintype=dialogLogin &callback=biduapi’,
注意,getapi=
这里毫无原因的多了一个=,然后一直404 。
求个解决方案,毕竟我不想对nodejs的库做太多的修改……不然移植起来太坑爹了。
PS: 我现在用的是在Request.js的line161后面加一句
query = query.replace("=&","&");
这样的暴力方法。。
4 回复
这是在发送请求啊亲。。哪里来的req
?getapi 这个router是第一个参数,只对这个判断一下,别的放过
用request把,没这个问题。
这个不能算QueryString的bug吧,只能说百度的url太奇葩了