Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/json"
- "log"
- "net/http"
- "net/url"
- "strings"
- )
- type Server struct {
- Endpoint string
- User string
- Password string
- }
- type Ip struct {
- Tenant string `json:"tenant"`
- Subnet string `json:"subnet"`
- }
- type Net struct {
- Tenant string `json:"tenant"`
- Subnet string `json:"subent"`
- Ip2 string `json:"ip"`
- }
- type Error struct {
- Message string `json:"message"`
- }
- type Data struct {
- Net Net `json:"data"`
- Error Error `json:"error"`
- }
- func (c *Server) GetIp(ip *Ip) string {
- data1 := url.Values{}
- data1.Add("tenant", ip.Tenant)
- data1.Add("subnet", ip.Subnet)
- req, err := http.NewRequest("POST", c.Endpoint, strings.NewReader(data1.Encode()))
- req.SetBasicAuth(c.User, c.Password)
- req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
- cli := &http.Client{}
- resp, err := cli.Do(req)
- if err != nil {
- log.Fatalln(err)
- }
- defer resp.Body.Close()
- decoder := json.NewDecoder(resp.Body)
- data := Data{}
- err = decoder.Decode(&data)
- if err != nil {
- log.Fatalln(err)
- }
- return data.Net.Ip2
- }
- func main() {
- client := Server{
- Endpoint: "http://192.168.122.162:7000/getip",
- User: "testk",
- Password: "testk",
- }
- ip := Ip{
- Tenant: "testk",
- Subnet: "dev",
- }
- data := client.GetIp(&ip)
- log.Println(data)
- }
Add Comment
Please, Sign In to add comment