sendEmbeddingHttpRequest function

Future<EmbeddingHttpResponse> sendEmbeddingHttpRequest(
  1. EmbeddingHttpRequest request
)

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);
  }
}