2

我想使用HTTP POST在Deno中编写一个 http 客户端。目前在 Deno 中这可能吗?

作为参考,是在 Deno 中执行 http GET 的示例:

const response = await fetch("<URL>");

我查看了 Deno 中的HTTP 模块,目前它似乎只关注服务器端。

4

2 回答 2

2

为此multipart/form-data POST,可以使用FormData对象打包表单发布数据。这是通过HTTP POST发送表单数据的客户端示例:

    // deno run --allow-net http_client_post.ts
    const form = new FormData();
    form.append("field1", "value1");
    form.append("field2", "value2");
    const response = await fetch("http://localhost:8080", {
        method: "POST",
        headers: { "Content-Type": "multipart/form-data" },
        body: form 
    });
    
    console.log(response)

2020 年 7 月 21 日更新:

根据@fuglede 的回答,发送JSON过来HTTP POST

    const response = await fetch(
      url,
      {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ field1: "value1", field2: "value2" })
      },
    );
于 2020-05-09T18:45:05.783 回答
1

另一个答案对 -encoded 数据很有用multipart/form-data,但值得注意的是,同样的方法也可以用于提交其他编码的数据。例如,要发布 JSON 数据,您可以只使用一个字符串作为body参数,最终看起来像下面这样:

const messageContents = "Some message";
const body = JSON.stringify({ message: messageContents });
const response = await fetch(
  url,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: body,
  },
);
于 2020-07-21T13:57:16.810 回答