Я пытался отправить данные на локальный сервер с помощью HttpClient. Тем не менее, данные никогда не добавляется к запросу, я использую этот код:dart - написать тело HttpClientReques не удается?
new HttpClient().put('127.0.0.1', 4040, '/employees/1').then((request) {
request.cookies.add(new Cookie('DARTSESSID',sessionId)..path = '/');
request.headers.add(HttpHeaders.ACCEPT_ENCODING, "");
request.headers.add(HttpHeaders.CONTENT_TYPE, "text/json");
request.write('{"id": 1, "name": "luis"}');
print(request.contentLength);
return request.close();
}).then(expectAsync((HttpClientResponse response) {
expect(response.statusCode, 200);
UTF8.decodeStream(response).then(expectAsync((body) {
expect(body, equals('"employee: 1"'));
}));
}));
но всегда печатает, что request.contentLenght является -1. Я видел эти ссылки, прежде чем без везения:
https://code.google.com/p/dart/issues/detail?id=13293
dart - HttpClientRequest failing on adding data
https://code.google.com/p/dart/issues/detail?id=10026
проблема была вызвана тем, что я также просил ContentLength на сервере. Похоже, что значение contentLength не было настроено перед отправкой данных на сервер. Чтобы решить проблему, я расшифровал поток и проверил, пусто ли тело, вместо проверки длины содержимого. Благодарю. –