Эксперимент с более простой package:http
версией.
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
main() async {
var username = 'foo';
var password = 'B@r!';
var credential = base64.encode(utf8.encode('$username:$password'));
var client = http.IOClient();
var request = http.Request(
'SEARCH',
Uri.parse('https://host123.com.br/remote.php/dav'),
);
request.headers.addAll({
HttpHeaders.authorizationHeader: 'Basic $credential',
'content-type': 'text/xml' // or text/xml;charset=utf-8
});
var xml = '<?xml version="1.0" encoding="UTF-8"?>...';
// either
request.body = xml;
// which will encode the string to bytes, and modify the content-type header, adding the encoding
// or
// request.bodyBytes = utf8.encode(xml);
// which gives you complete control over the character encoding
var streamedResponse = await client.send(request);
print(streamedResponse.statusCode);
var responseBody =
await streamedResponse.stream.transform(utf8.decoder).join();
print(responseBody);
client.close();
}