Http-клиент с использованием HTTP POST в Deno - PullRequest
0 голосов
/ 09 мая 2020

Я хотел бы написать http-клиент в Deno , используя HTTP POST . Возможно ли это в Deno в настоящее время?

Для справки, это пример выполнения HTTP GET в Deno:

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

Я посмотрел на HTTP-модуль в Deno и, похоже, в настоящее время он ориентирован только на серверную часть.

Ответы [ 2 ]

1 голос
/ 21 июля 2020

Другой ответ полезен для данных, закодированных multipart/form-data, но стоит отметить, что тот же подход можно использовать и для отправки данных с другими кодировками. Например, для данных POST 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,
  },
);
1 голос
/ 09 мая 2020

Чтобы выполнить 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-07-21:

Согласно ответу от @fuglede, на отправить JSON через HTTP POST:

...
const response = await fetch(
  url,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ field1: "value1", field2: "value2" })
  },
);
...
...