in internal/conn/http/http.go [208:234]
func (c *Client) Send(ctx context.Context, event []byte, headers []string) error {
if c.fakeSender != nil {
return c.fakeSender.Send(ctx, event)
}
if len(headers)%2 != 0 {
return fmt.Errorf("headers must be key-value pairs")
}
read := readerPool.Get().(*bytes.Reader)
read.Reset(event)
defer readerPool.Put(read)
req, err := c.setup(ctx, read, headers)
if err != nil {
return err
}
// Send the event to the ARN service.
resp, err := c.client.Pipeline().Do(req)
if err != nil {
return err
}
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("unexpected status code: %d", resp.StatusCode)
}
return nil
}