我在项目中使用了内置的“查询字符串”模块。
这是我的示例代码
var querystring = require('querystring');
var postData = querystring.stringify({
travelDate: "19-Sep-2015",
travelDate: "05-Nov-2015",
});
console.dir(postData);
但它会记录'travelDate=05-Nov-2015'
。
我希望得到结果'travelDate=19-Sep-2015&travelDate=05-Nov-2015'
有什么方法可以解决这个问题吗?
更新:我说明了我的问题更多细节
我知道查询参数键应该是唯一的。但我需要从网站上获取数据。我观察它的格式为表单数据。
他们有相同的键(“travelDate”)如下所示。
_eventId:showWtLblResult
mode:searchResultInter
wvm:WVMD
tripType:RT
origin:KHH
destination:NRT
travelDate:19-Sep-2015
travelDate:05-Nov-2015
adults:1
children:0
infants:0
cabinClass:ECONOMY
promoCode:
pointOfPurchase:OTHERS
flightNumberOW:
fareOW:
flightNumberRT:
fareRT:
channel:PB
bookingSource:
skyscanner_redirectid:
flexTrvlDates:
所以我无法简洁地包装我的请求体。
我有点顽固,我希望保持我的代码简洁。
答案 0 :(得分:1)
为了对查询字符串使用两个相同的键,这是一个例子:
var postData = querystring.stringify({
travelDate: [
"19-Sep-2015",
"05-Nov-2015"
]
});
答案 1 :(得分:0)
查询参数键应该是唯一的。为什么你没有这样的东西:
var querystring = require('querystring');
var postData = querystring.stringify({
travelStartDate: "19-Sep-2015",
travelEndDate: "05-Nov-2015",
});
console.dir(postData);
结果如下:
'travelStartDate=19-Sep-2015&travelEndDate=05-Nov-2015'
答案 2 :(得分:0)
你在同一个对象中使用两个相同的键;第二个是覆盖第一个,这就是你看到结果的原因。您应该使用它:
09-07 12:00:32.082 21249-24268/com.example.callsmsforward W/System.err﹕ javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
09-07 12:00:32.082 21249-24268/com.example.callsmsforward W/System.err﹕ nested exception is:
09-07 12:00:32.083 21249-24268/com.example.callsmsforward W/System.err﹕ java.net.ConnectException: failed to connect to smtp.gmail.com/2404:6800:4003:c00::6c (port 465) after 90000ms: isConnected failed: ENETUNREACH (Network is unreachable)
或类似的东西。
但是,如果查询字符串参数名称必须相同,you can pass them as an array
var querystring = require('querystring');
var postData = querystring.stringify({
travelDate01: "19-Sep-2015",
travelDate02: "05-Nov-2015",
});
console.dir(postData);