我想我遗漏了一些关于 http 和 https 请求的东西
我有一个包含 URL 的变量,例如:
http(s)://website.com/a/b/file.html
我想知道是否有一种简单的方法可以向该 URI 发出请求以获取数据
要发出 http(s)Request,这是我现在必须做的:
- 测试 URL 是 http 还是 https 以发出适当的请求
- 删除 http(s)://部分并将结果放入变量中(如果我在主机名中指定 http 或 https,我会收到错误消息)
- 将主机名与路径分开:
website.com
和 `/a/b/file.html - 将这个变量放在选项对象中
这是必须的还是更简单的解决方案,不涉及获取主机名和路径,并测试站点是 http 还是 https?
编辑:我不能使用 http.get,因为我需要放置一些特定选项
最佳答案
为了从 URL 中获取所有组件,您需要对其进行解析。 Node v0.10.13 具有稳定的模块:url.parse
这是如何做到这一点的简单示例:
var q = url.parse(urlStr, true);
var protocol = (q.protocol == "http") ? require('http') : require('https');
let options = {
path: q.pathname,
host: q.hostname,
port: q.port,
};
protocol.get(options, (res) => {...
关于Node.js 使用选项(http 或 https)直接请求 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829782/