kuma

Форк
0
/
client.go 
31 строка · 718.0 Байт
1
package http
2

3
import (
4
	nethttp "net/http"
5
	"net/url"
6
	"path"
7
)
8

9
type Client interface {
10
	Do(req *nethttp.Request) (*nethttp.Response, error)
11
}
12

13
type ClientFunc func(req *nethttp.Request) (*nethttp.Response, error)
14

15
func (f ClientFunc) Do(req *nethttp.Request) (*nethttp.Response, error) {
16
	return f(req)
17
}
18

19
func ClientWithBaseURL(delegate Client, baseURL *url.URL, headers map[string]string) Client {
20
	return ClientFunc(func(req *nethttp.Request) (*nethttp.Response, error) {
21
		if req.URL != nil {
22
			req.URL.Scheme = baseURL.Scheme
23
			req.URL.Host = baseURL.Host
24
			req.URL.Path = path.Join(baseURL.Path, req.URL.Path)
25
			for k, v := range headers {
26
				req.Header.Add(k, v)
27
			}
28
		}
29
		return delegate.Do(req)
30
	})
31
}
32

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.