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

Я пытаюсь использовать класс 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?

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


person george koller    schedule 31.05.2014    source источник


Ответы (2)


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

Гюнтер Зоебауэр героически работал со мной в автономном режиме, чтобы получить это, я не смог найти никаких примеров 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);
}
person george koller    schedule 02.06.2014
comment
Я хотел бы прокомментировать Dart Engineers, насколько запутанным может быть то, что клиент и сервер разные. Документы и примеры не претерпевают изменений, документы API редко включают полные примеры, а общий характер работы с HTTP, имхо, совсем не ясен. Использовать "заголовок" или "заголовок"? Нет, а? Не говоря уже о том, что тестирование может занять очень много времени, так как легко возникает множество проблем. Я действительно видел больше, чем пару результатов Stack Overflow по пути :) - person george koller; 02.06.2014

person    schedule
comment
Я вернулся к исходному вопросу, чтобы попытаться прояснить проблему. Тем временем я пробовал все, что мог придумать, чтобы установить заголовок, и ничего не сработало. Я думал, что .headers.set () выглядел многообещающе, но тоже не годился. - person george koller; 31.05.2014