我正在开发我的第一个golang应用程序。我试图通过路由器获取url值并将其推送到一个URL,该URL将向API发出POST请求。所有这些都有效,但是当我尝试使用net/url
中的值映射使查询参数与POST请求一起发送时,我开始出错。
以下是相关代码:
package Utils
import (
"fmt"
"bytes"
"encoding/json"
"encoding/base64"
"log"
"net/http"
"net/url"
"io/ioutil"
)
...
func RetrieveAccessToken(client_id, client_secret, url, grant_type, code, redirect_uri string){
// The data we are going to send with our request
data := url.Values{}
data.Set("client_id", client_id)
data.Add("client_secret", client_secret)
data.Add("grant_type", grant_type)
data.Add("code", code)
data.Add("redirect_uri", redirect_uri)
...
}
以下是我得到的错误
Utils/Api.go:25:23: error: expected ‘;’ or ‘}’ or newline
data := url.Values{}
^
在此错误之后,我在上一行之后的每一行都会收到类似的错误:
Utils/Api.go:26:5: error: expected declaration
data.Set("client_id", client_id)
^
直到最后我引用net/url Values
调用
Utils/Api.go:25:16: error: reference to undefined field or method ‘Values’
data := url.Values{}
^
如果有人能帮我解决这个问题,我将非常感激。我一直在看Go文档,似乎我一直在密切关注他们的例子。如果有一条规则我会误解,或者我错过了什么,如果你能指出我正确的方向,我会非常感激!
再次感谢!
答案 0 :(得分:3)
你已经影响了" url"包含函数中url
参数的包名称。重命名后者。