如何访问http客户端响应正文全局

在下面的代码中,我尝试将变量“Regprofile”作为全局变量访问,但得到空输出。有什么帮助吗?


type GMLCInstance struct {

    NfInstanceID   string   `json:"nfInstanceID"`

    HeartBeatTimer int      `json:"heartBeatTimer"`

    NfType         []string `json:"nfType"`

    NfStatus       []string `json:"nfStatus"`

    Ipv4Addresses  []string `json:"ipv4Addresses"`

}



var Regprofile GMLCInstance



// Request credentials and token from NRF and register profile to NFR database

func init() {


    urlcred := "https://127.0.0.1:9090/credentials"


    // Perform the request

    resp, err := netClient.Get(urlcred)

    if err != nil {

        log.Fatalf("Failed get: %s", err)

    }

    defer resp.Body.Close()


    // Fill the record with the data from the JSON

    var cr Credential


    // Use json.Decode for reading streams of JSON data

    if err := json.NewDecoder(resp.Body).Decode(&cr); err != nil {

        log.Println(err)

    }


    //fmt.Println(cr)


    clientId := cr.CLIENTID

    clientsec := cr.CLIENTSECRET


    // Get token


    reqtoken := url.Values{

        "grant_type":    []string{"client_credentials"},

        "client_id":     []string{clientId},

        "client_secret": []string{clientsec},

        "scope":         []string{"GMLC"},

    }


    urlq := "https://127.0.0.1:9090/oauth2/token?"


    res, err := netClient.PostForm(urlq+reqtoken.Encode(), nil)

    if err != nil {

        log.Fatalf("Failed get: %s", err)

    }



    var auth AccessToken


    // Use json.Decode for reading streams of JSON data

    if err := json.NewDecoder(res.Body).Decode(&auth); err != nil {

        log.Println(err)

    }


    //fmt.Println(auth.AccessToken)


    token := auth.AccessToken


    para := url.Values{

        "access_token": []string{token},

    }

我得到的空数据为 { 0 [] [] []}


精慕HU
浏览 147回答 1
1回答

温温酱

您可以在函数范围内本地func init()重新声明变量。var Regprofile GMLCInstance该声明将全局变量与局部变量隐藏起来。只需删除里面的这个本地声明即可init()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go