Deno 发起 HTTP 请求

🌙
手机阅读
本文目录结构

发出一个 HTTP 请求

通过 HTTP 请求从服务器获取数据是一件很常见的事。

让我们编写一个简单的程序来获取文件并打印到终端。

就像浏览器一样,您可以使用 web 标准的 fetch API 来发出请求。

const url = Deno.args[0];
const res = await fetch(url);

const body = new Uint8Array(await res.arrayBuffer());
await Deno.stdout.write(body);

让我们看看它做了什么:

  1. 第一个命令行参数,存储到变量 url
  2. 我们向指定的地址发出请求,等待响应,然后存储到变量 res
  3. 我们把响应体解析为一个 ArrayBuffer,等待接收完毕,将其转换为 Uint8Array,最后存储到变量 body
  4. 我们把 body 的内容写入标准输出流 stdout

真实跑一下

deno run https://deno.land/std/examples/curl.ts https://www.axihe.com

https://a.axihe.com/edu/deno/powershell_biCZBsyaar.png

这个程序将会返回一个关于网络权限的错误,我们好像姿势不对啊?

显式赋予程序权限

您可能会想起来,最开始就说过,Deno 默认用安全环境执行代码。

这意味着您需要显式赋予程序权限,允许它进行一些特权操作,比如网络访问。

用正确的权限选项再试一次:

deno run --allow-net=www.axihe.com https://deno.land/std/examples/curl.ts https://www.axihe.com

这次就成功啦~!

https://a.axihe.com/edu/deno/powershell_5shK6fKMQ0.png

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了