Deno 发起 HTTP 请求

🌙
手机阅读
本文目录结构
axihe

发出一个 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 / 知乎

如果你加我的私人微信,麻烦写上您的 称呼,所在地区,职业,方便我备注,谢谢


本站的微信公众号

阿西河前端教程

Anbang

安邦的私人微信

微信号: yaolushan

Anbang

Bilibili(B站)

朱安邦

Anbang