42 lines
		
	
	
		
			717 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			717 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package main
 | 
						|
 | 
						|
import (
 | 
						|
	"errors"
 | 
						|
	"fmt"
 | 
						|
 | 
						|
	"git.3crabs.ru/VLADIMIR/net/http"
 | 
						|
)
 | 
						|
 | 
						|
type CustomDNS struct{}
 | 
						|
 | 
						|
func (*CustomDNS) GetIP(domain string) (string, error) {
 | 
						|
	if domain == "test.ru" {
 | 
						|
		return "127.0.0.1:8081", nil
 | 
						|
	}
 | 
						|
	return "", errors.New("ip not found")
 | 
						|
}
 | 
						|
 | 
						|
func main() {
 | 
						|
	client := http.Client{
 | 
						|
		DNS:       &CustomDNS{},
 | 
						|
		Transport: &http.HttpTransport{},
 | 
						|
	}
 | 
						|
	r, err := client.Do(
 | 
						|
		"GET",
 | 
						|
		"http://test.ru",
 | 
						|
		[]http.Header{
 | 
						|
			{Name: "Host", Value: "3crabs.ru"},
 | 
						|
			{Name: "User-Agent", Value: "3crabs/0.0.1"},
 | 
						|
			{Name: "Accept", Value: "*/*"},
 | 
						|
		},
 | 
						|
	)
 | 
						|
	if err != nil {
 | 
						|
		panic(err)
 | 
						|
	}
 | 
						|
	fmt.Println(r.StatusCode)
 | 
						|
	for _, header := range r.Headers {
 | 
						|
		fmt.Println(header)
 | 
						|
	}
 | 
						|
	fmt.Println(string(r.Body))
 | 
						|
}
 |