Я установил свой сервер дартс, как показано ниже.Я могу отправлять данные из приложения Flutter Mobile и получать обратно с сервера Dart.
Если в Dart Server используется метод запроса GET, я подключаюсь к сокету tcp и получаю некоторые данные.данные, которые нужно отправить в приложение Flutter, должны быть в формате JSON.
Я пытаюсь установить для request.response.headers.contentType значение json, и я получаю сообщение об ошибке HttpException: HTTP-заголовки не изменяемы.
Часть кода:
var _secureResponse = {};
_secureResponse[“Data”] = "$_returningServerData";
_secureResult = json.encode(_secureResponse);
request.response.headers.contentType = new ContentType("application", "json", charset: "utf-8");
request.response.write(_secureResult);
request.response.close();
Ошибка:
- ноль
- Необработанныйисключение: HttpException: заголовки HTTP не являются изменяемыми
- HttpHeaders._checkMutable (dart: _http / http_headers.dart: 447: 20)
- HttpHeaders.contentType = (dart: _http / http_headers.dart:267: 5)
Код сервера:
Future main() async {
final HttpServer server = await HttpServer.bind("127.0.0.1", 8080);
server.listen((HttpRequest request) async {
print(request.headers.contentType);
try {
if (request.method == "GET") {
String _requestData = ......
Socket _socket = await Socket.connect('192.168.22.129', 3000);
// READ FROM CSERVER
_socket.listen((List<int> event) {
_reply = new String.fromCharCodes(event).trim();
});
// WRITE TO SERVER
_socket.add(utf8.encode('$_requestData\r\n'));
// wait 1 seconds
await Future.delayed(Duration(milliseconds: 1000));
_socket.close();
var _secureResponse = {};
_secureResponse["Data"] = "$_reply";
_secureResult = json.encode(_secureResponse);
request.response.headers.contentType = new
ContentType("application", "json", charset: "utf-8");
request.response.write(_secureResult);
request.response.close();
}
} finally {
var _secureResponse = {};
_secureResponse["Data"] = "ERROR";
_secureResult = json.encode(_secureResponse);
request.response.headers.contentType = new
ContentType("application", "json", charset: "utf-8");
request.response.write(_secureResult);
request.response.close();
}
});
}