onRequestWillBeSent method
on network request will be sent to server invoke width HttpRequest more details, see https://chromedevtools.github.io/devtools-protocol/tot/Network/#event-requestWillBeSent
Implementation
void onRequestWillBeSent(EngineContext context, String requestId, VoltronHttpRequest request) {
final Map<String, String> requestHeader = request.getHeaders().map((key, value) {
if (value is List) {
return MapEntry(key, value.join(';'));
}
return MapEntry(key, value.toString());
});
final postData = request.body;
final entryMap = {kHttpRequestBytes: base64Encode(utf8.encode(postData))};
final requestMap = {
kHttpRequestUrl: request.url,
kHttpRequestMethod: request.method.toUpperCase(),
kHttpRequestHeaders: requestHeader,
kHttpRequestPostData: postData,
kHttpRequestHasPostData: postData.isNotEmpty,
kHttpRequestPostDataEntries: [entryMap],
kHttpRequestMixedContentType: kDefaultMixedContentType,
kHttpRequestInitialPriority: kDefaultInitialPriority,
kHttpRequestReferrerPolicy: kDefaultReferrerPolicy
};
final timeStamp = NetworkUtil.getTimeStamp();
final defaultInitiatorMap = {"type": "other"};
final jsonMap = {
kHttpRequestRequestId: requestId,
kHttpRequestLoaderId: requestId,
kHttpRequestDocumentUrl: "",
kHttpRequestTAG: requestMap,
kHttpRequestTimestamp: timeStamp,
kHttpRequestWallTime: timeStamp,
kHttpRequestInitiator: defaultInitiatorMap,
kHttpRequestType: kDefaultRequestType
};
final result = json.encode(jsonMap);
VoltronApi.notifyRequestWillBeSent(context.engineId, requestId, result);
}