onResponse method
void
onResponse(
- Response response, {
- dynamic body,
Handles http response. It creates both request and response from http call
Implementation
void onResponse(http.Response response, {dynamic body}) {
final request = response.request;
if (request == null) {
return;
}
final call = AliceHttpCall(request.hashCode);
call.loading = false;
call.client = "HttpClient (http package)";
call.uri = request.url.toString();
call.method = request.method;
call.endpoint = request.url.path.isEmpty ? "/" : request.url.path;
call.server = request.url.host;
call.secure = request.url.scheme == "https";
final httpRequest = AliceHttpRequest();
if (request is http.Request) {
httpRequest.body = body ?? request.body;
httpRequest.size = utf8.encode(httpRequest.body.toString()).length;
httpRequest.headers = Map<String, dynamic>.from(request.headers);
} else if (body == null) {
httpRequest.size = 0;
httpRequest.body = "";
} else {
httpRequest.size = utf8.encode(body.toString()).length;
httpRequest.body = body;
}
httpRequest.time = DateTime.now();
httpRequest.contentType = AliceParser.getContentType(httpRequest.headers);
httpRequest.queryParameters = request.url.queryParameters;
final httpResponse = AliceHttpResponse();
httpResponse.status = response.statusCode;
httpResponse.body = response.body;
httpResponse.size = utf8.encode(response.body).length;
httpResponse.time = DateTime.now();
httpResponse.headers = Map<String, String>.from(response.headers);
call.request = httpRequest;
call.response = httpResponse;
call.duration = 0;
aliceCore.addCall(call);
}