- @override
Begins listening for HTTP requests on port.
Source
@override
Future open() async {
server = await HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, port);
server.listen((HttpRequest req) async {
var mockReq = new MockHTTPRequest()
..method = req.method
..path = req.uri.path
..queryParameters = req.uri.queryParameters;
mockReq.headers = {};
req.headers.forEach((name, values) {
mockReq.headers[name] = values.join(",");
});
if (req.contentLength > 0) {
mockReq.body = new String.fromCharCodes(await req.first);
}
add(mockReq);
if (responseQueue.length > 0) {
var respObj = responseQueue.first;
responseQueue.removeAt(0);
if (respObj.statusCode == _mockConnectionFailureStatusCode) {
// We let this one die by not responding.
return null;
}
var wrappedReq = new Request(req);
wrappedReq.respond(respObj);
} else {
req.response.statusCode = 200;
req.response.close();
}
});
}