MCPcopy
hub / github.com/cloudfoundry/cli / doRequest

Method doRequest

cf/net/gateway.go:401–438  ·  view source on GitHub ↗
(request *http.Request)

Source from the content-addressed store, hash-verified

399}
400
401func (gateway Gateway) doRequest(request *http.Request) (*http.Response, error) {
402 var response *http.Response
403 var err error
404
405 if gateway.transport == nil {
406 makeHTTPTransport(&gateway)
407 }
408
409 httpClient := NewHTTPClient(gateway.transport, NewRequestDumper(gateway.logger))
410
411 httpClient.DumpRequest(request)
412
413 for i := 0; i < 3; i++ {
414 response, err = httpClient.Do(request)
415 if response == nil && err != nil {
416 continue
417 } else {
418 break
419 }
420 }
421
422 if err != nil {
423 return response, err
424 }
425
426 httpClient.DumpResponse(response)
427
428 rawWarnings := strings.Split(response.Header.Get("X-Cf-Warnings"), ",")
429 for _, rawWarning := range rawWarnings {
430 if rawWarning == "" {
431 continue
432 }
433 warning, _ := url.QueryUnescape(rawWarning)
434 *gateway.warnings = append(*gateway.warnings, warning)
435 }
436
437 return response, err
438}
439
440func makeHTTPTransport(gateway *Gateway) {
441

Callers 1

Calls 6

makeHTTPTransportFunction · 0.85
NewRequestDumperFunction · 0.85
DumpRequestMethod · 0.65
DoMethod · 0.65
DumpResponseMethod · 0.65
GetMethod · 0.65

Tested by

no test coverage detected