Bezdepbonusu7Программирование: статьи и ответы

Вопрос

В Dart на стороне сервера, как установить заголовки в HttpClient

Автор вопроса: george kollerОтветов: 1

Я пытаюсь использовать класс Dart HttpClient (библиотека io / на стороне сервера!), И я не могу придумать, как сделать ЭКВИВАЛЕНТ вызова Dart (на стороне клиента) для setRequestHeader.

В частности, я хочу установить "Content-type" на "application / json"

согласно этой строке (со стороны клиента):

request.setRequestHeader ("Content-type", "application / json");

Я использую формат:

new HttpClient().postUrl(Uri.parse(url))
       .then((HttpClientRequest  request)  => request.close())
       .then((HttpClientResponse response) => response.transform(new Utf8Decoder()).listen(_set_dbStats));

и когда я пытаюсь вставить:

.then((HttpClientRequest  request) => request.head("Content-type", "application/json"))

Мне сообщили (в редакторе Dart), что head не является методом запроса ... (хотя я вижу это в API ?!) Может ли это быть связано с его использованием в качестве POST?

Заранее спасибо!

httpdarthttprequestserver-side

Ответы

Ответ 1 · рейтинг 3 · george koller

Вот фрагмент рабочего кода, который возник в результате многочисленных тестов и решает некоторые проблемы, выходящие за рамки исходного вопроса.

Гюнтер Зоебауэр героически работал со мной в автономном режиме, чтобы получить это, я не смог найти никаких примеров 1. На стороне сервера, 2. POST 3. HTTP-команды с использованием заголовков, этот формат позволяет это ...

import 'package:http/http.dart' as http;

String url = "https://whatever.com";
return new http.Client()
   .post(url, headers: {'Content-type': 'application/json'},
    body: '{"distinct": "users","key": "account","query": {"active":true}}')
   .whenComplete(() => print('completed'))
   .then((http.Response r) => r.body);
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы