首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Node.js中的参数发送http get请求

使用Node.js中的参数发送http get请求
EN

Stack Overflow用户
提问于 2015-04-14 08:39:29
回答 2查看 23.8K关注 0票数 5

我正在尝试从Node.js应用程序向Rails服务器发送GET请求。目前,我使用的request模块如下所示:

代码语言:javascript
运行
复制
var request = require("request");
var url = 'www.example.com'

function sendRequest(url){
  string = 'http://localhost:3000/my-api-controller?url=' + url;
  request.get(string, function(error, response, body){
    console.log(body);
  });
}

这是可行的。但我想要的不是为get请求构建string,而是将请求的参数作为javascript对象传递(以类似于jQuery的方式)。request模块的wiki页面上有一个one example,它使用的正是这种语法:

代码语言:javascript
运行
复制
request.get('http://some.server.com/', {
  'auth': {
    'user': 'username',
    'pass': 'password',
    'sendImmediately': false
  }
});

但是,当我尝试将此语法应用于我的目的时,如下所示:

代码语言:javascript
运行
复制
function sendRequest(url){
  request.get('http://localhost:3000/my-api-controller', {url: url}, function(error, response, body){
    console.log(body);
  });
}

未发送url参数。

所以我的问题是,是我做错了什么,还是request模块不支持将get请求的参数作为javascript对象传递?如果没有,你能推荐一个方便的Node模块吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-14 08:53:57

您在request模块中指向的"HTTP Authentication“示例不会构建查询字符串,它会根据特定的选项添加身份验证头。该页面的another part描述了您想要的内容:

代码语言:javascript
运行
复制
request.get({url: "http://localhost:3000/my-api-controller", 
             qs: {url: url}},
            function(error, response, body){
               console.log(body);
            });

差不多吧。正如注释中提到的,这反过来使用querystring模块来构建查询字符串。

票数 6
EN

Stack Overflow用户

发布于 2015-04-14 08:54:29

提供给request()或其convenience methods的对象不仅仅是用于数据参数的。

要提供在查询字符串中发送的{ url: url },您需要使用qs选项。

代码语言:javascript
运行
复制
request.get('http://localhost:3000/my-api-controller', {
    qs: { url: url }
}, function(error, response, body){
    // ...
});
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29617328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档