open method
Opens an HTTP request with APM tracking capabilities
Implementation
@override
Future<HttpClientRequest> open(
String method,
String host,
int port,
String path,
) {
const int hashMark = 0x23;
const int questionMark = 0x3f;
int fragmentStart = path.length;
int queryStart = path.length;
for (int i = path.length - 1; i >= 0; i--) {
var char = path.codeUnitAt(i);
if (char == hashMark) {
fragmentStart = i;
queryStart = i;
} else if (char == questionMark) {
queryStart = i;
}
}
String? query;
if (queryStart < fragmentStart) {
query = path.substring(queryStart + 1, fragmentStart);
path = path.substring(0, queryStart);
}
Uri uri = Uri(
scheme: 'http',
host: host,
port: port,
path: path,
query: query,
);
return _openUrl(method, uri);
}