package main
import (
"bytes"
"encoding/json"
"fmt"
"github.com/Anderson-Lu/gofasion/gofasion"
"github.com/tidwall/gjson"
"io/ioutil"
"net/http"
"time"
)
// Get 发送GET请求
// url: 请求地址
// response: 请求返回的内容
func Get(url string,token string) interface{} {
client := &http.Client{Timeout: 5 * time.Second}
resp, err := http.NewRequest("GET", url, nil)
resp.Header.Set("Authorization", fmt.Sprintf("Bearer %s",token))
if err != nil {
panic(err)
}
response, _ := client.Do(resp)
body, _ := ioutil.ReadAll(response.Body)
return string(body)
}
// Post 发送POST请求
// url: 请求地址
// data: POST请求提交的数据
// contentType: 请求体格式,如:application/json
// content: 请求放回的内容
func Post(url string, data interface{}, contentType string) string {
// 超时时间:5秒
client := &http.Client{Timeout: 5 * time.Second}
jsonStr, _ := json.Marshal(data)
resp, err := client.Post(url, contentType, bytes.NewBuffer(jsonStr))
if err != nil {
panic(err)
}
defer resp.Body.Close()
result, _ := ioutil.ReadAll(resp.Body)
return string(result)
}
func main() {
info := map[string]string{
"username":"root",
"password":"123456",
}
re := Post("http://192.168.1.1/api/v1/authentication/auth/",info,"application/json")
value := gjson.Get(re, "token")
token := value.String()
jmsHost :=Get("http://192.168.1.1/api/v1/assets/assets/",token)
fmt.Println(jmsHost)
data := gofasion.NewFasion(jmsHost)
dataHost := data.Array()
for _,v :=range dataHost {
fmt.Println(v)
fmt.Println(v.Get("hostname").ValueStr())
}
}
go 根据jumpserver api 获取所有资产信息(后续可导入cmdb)
原创
©著作权归作者所有:来自51CTO博客作者go工程师的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:go 编译npm 前端包 发版
下一篇:go 获取钉钉通讯录 所有部门
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java根据表名称获取所有字段
java根据表名称获取所有字段
字段 java sql -
CMDB资产管理系统
一、远程服务器资产信息采集方案 实现方案一:agent——server服务端模
CMDB资产 配置文件 服务器 字符串 -
资产管理系统 CMDB 详解
作为一个运维怎么能不了解CMDB
运维 运维开发 CMDB -
docker部署cmdb资产管理cmdb