123456789101112131415161718192021222324252627282930313233343536 |
- package transport
- import (
- "io"
- "net/http"
- )
- // httpTransport holds an http.RoundTripper
- // and information about the scheme and address the transport
- // sends request to.
- type httpTransport struct {
- http.RoundTripper
- scheme string
- addr string
- }
- // NewHTTPTransport creates a new httpTransport.
- func NewHTTPTransport(r http.RoundTripper, scheme, addr string) Transport {
- return httpTransport{
- RoundTripper: r,
- scheme: scheme,
- addr: addr,
- }
- }
- // NewRequest creates a new http.Request and sets the URL
- // scheme and address with the transport's fields.
- func (t httpTransport) NewRequest(path string, data io.Reader) (*http.Request, error) {
- req, err := newHTTPRequest(path, data)
- if err != nil {
- return nil, err
- }
- req.URL.Scheme = t.scheme
- req.URL.Host = t.addr
- return req, nil
- }
|