| // Copyright 2018 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| //go:build !js | |
| package http | |
| import _ "unsafe" // for linkname | |
| // RoundTrip should be an internal detail, | |
| // but widely used packages access it using linkname. | |
| // Notable members of the hall of shame include: | |
| // - github.com/erda-project/erda-infra | |
| // | |
| // Do not remove or change the type signature. | |
| // See go.dev/issue/67401. | |
| // | |
| //go:linkname badRoundTrip net/http.(*Transport).RoundTrip | |
| func badRoundTrip(*Transport, *Request) (*Response, error) | |
| // RoundTrip implements the [RoundTripper] interface. | |
| // | |
| // For higher-level HTTP client support (such as handling of cookies | |
| // and redirects), see [Get], [Post], and the [Client] type. | |
| // | |
| // Like the RoundTripper interface, the error types returned | |
| // by RoundTrip are unspecified. | |
| func (t *Transport) RoundTrip(req *Request) (*Response, error) { | |
| if t == nil { | |
| panic("transport is nil") | |
| } | |
| return t.roundTrip(req) | |
| } |