sendEmbeddingHttpRequest function
Sends one request through dart:io's HTTP client, bounded end to end by kEmbeddingHttpTimeout.
Implementation
Future<EmbeddingHttpResponse> sendEmbeddingHttpRequest(
EmbeddingHttpRequest request,
) async {
final client = HttpClient();
try {
return await () async {
final wire = await client.openUrl(request.method, request.uri);
request.headers.forEach(wire.headers.set);
wire.write(request.body);
final response = await wire.close();
return EmbeddingHttpResponse(
statusCode: response.statusCode,
body: await utf8.decoder.bind(response).join(),
);
}().timeout(kEmbeddingHttpTimeout);
} finally {
client.close(force: true);
}
}