阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

    教程列表

    数据库
    抓包专区
    测试专区

    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

    卖前端学习教程

    只需几十元,就能买到培训班的内部教程!开启高薪之路!

    零基础小白阿里P7的教程都有!

    同时长期收购所有培训班的前端教程

    目录
    目录