nodejs的http.get通过提供URI

时间:2012-03-19 14:40:02

标签: node.js

我一直在阅读http API,但我找不到通过提供我想要访问的URI来http.get()的方法。

例如,我从客户端收到一个复杂的URI,比如http://a.b.c:1234/d/e,我想向它发出GET请求。问题是,如果我必须设置options方法的http.get()参数,我将最终在复杂的字符串解析中解析hostport和{ {1}}。而且,我甚至不确定总是会提供端口,例如。有没有办法通过提供完整的URI来执行path

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用url库来执行此操作。

var parse = require('url').parse;
http.get(parse(myurl));

将起作用,因为解析的url对象上的属性与http.get期望的选项相同。这不是一个黑客攻击,如果你查看文档,它说这两个库是为了相互补充而设计的。

答案 1 :(得分:2)

使用url.parse

var url = require('url');
var http = require('http');

function download(uri, cb) {
   http.get(url.parse(uri), cb);
}