我一直在阅读http
API,但我找不到通过提供我想要访问的URI来http.get()
的方法。
例如,我从客户端收到一个复杂的URI,比如http://a.b.c:1234/d/e
,我想向它发出GET
请求。问题是,如果我必须设置options
方法的http.get()
参数,我将最终在复杂的字符串解析中解析host
,port
和{ {1}}。而且,我甚至不确定总是会提供端口,例如。有没有办法通过提供完整的URI来执行path
?
谢谢!
答案 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);
}