我已经有了一个请求对象。现在我所要做的就是更改主机并再次发出http请求
//网址类型:www.something.com/a/b?w = 2& e = 2
fun(req,res){
options = {
host : <newhost>
method : req.method
path : req.path
headers : req.headers
}
http.request(options,...)
}
现在如何在此选项中发送查询字符串(w = 2&amp; e = 2) 我可以使用请求模块(在nodejs中),但也在重定向(HTTP 302)之后。
谢谢,
山塔努
答案 0 :(得分:2)
http
也可以这样做
var queryString = 'w=2&e=2';
options = {
host : <newhost>
method : req.method
path : req.path + '?' + queryString // say, var queryString = 'w=2&e=2'
headers : req.headers
}
http.request(options,...)
答案 1 :(得分:2)
更好的方法是使用节点querystring模块对对象进行字符串化。这样,您可以将选项对象传递给自定义queryBuilder函数,并将其重用于多个不同值的请求。这是一个基本的例子。
var querystring = require('querystring');
var http = require('http');
var options = {
host : 'www.host.com',
path : ''
}
var queryBuilder = function (object, callback) {
callback(querystring.stringify(object));
};
queryBuilder({ w: '2', e: '2' }, callback(data){
options.path = data;
http.request(options, function (req, res) {
//do something with the response
}).end();
});
这会将路径设置为w=2&e=2