MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / send

Function send

log-driver/loki/loki.go:338–372  ·  view source on GitHub ↗
(method string, uri string, headers map[string]string, queries url.Values, body string)

Source from the content-addressed store, hash-verified

336}
337
338func send[T any](method string, uri string, headers map[string]string, queries url.Values, body string) ([]*T, error) {
339 if queries != nil && len(queries) > 0 {
340 uri = fmt.Sprintf("%s?%s", uri, queries.Encode())
341 }
342 req, err := http.NewRequest(method, uri, strings.NewReader(body))
343 if err != nil {
344 return nil, fmt.Errorf("failed to create request: %w,uri is %s", err, uri)
345 }
346 for key, value := range headers {
347 req.Header.Set(key, value)
348 }
349 log.DebugF("do request: %s", uri)
350 doRequestTime := time.Now()
351 resp, err := client.Do(req)
352 if err != nil {
353 return nil, fmt.Errorf("failed to send request: %w", err)
354 }
355 log.DebugF("do request spend time: %v", time.Now().Sub(doRequestTime))
356 defer resp.Body.Close()
357 respData, err := io.ReadAll(resp.Body)
358 if err != nil {
359 return nil, fmt.Errorf("failed to read response: %w", err)
360 }
361
362 if resp.StatusCode > 399 {
363 return nil, fmt.Errorf("failed to send request: %s,body is %s", resp.Status, string(respData))
364 }
365
366 result := new(Response[T])
367 err = json.Unmarshal(respData, result)
368 if err != nil {
369 return nil, fmt.Errorf("failed to decode response: %w,body is %s", err, string(respData))
370 }
371 return result.Data.Result, nil
372}

Callers

nothing calls this directly

Calls 3

EncodeMethod · 0.80
SetMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected