直接上代码
关键点是:参数转码
//GET方式提交请求至服务端
func Qcc_GetUrl() {
// 请求参数
token := "1f910fca-a7**-42d0-a248-0c928673414c"
// Http请求头设置
log.Println(token)
// 设置请求Url-请自行设置Url
reqInterNme := "http://open.api.tianyancha.com/services/open/ic/baseinfo/2.0"
// 对于使用id的参数查询 不需要进行转码,
//paramStr := "id=2944340500"
//urlString := reqInterNme + "?"+ paramStr
//log.Println("url="+urlString)
// 对于使用name的参数查询时需要进行转码
postValue := url.Values{
"name": {"河北**电子商务有限公司"},
}
postString := postValue.Encode()
log.Println("postString:"+postString)
urlString := reqInterNme + "?"+ postString
req, err := http.NewRequest("GET",urlString, nil)
if err != nil {
// handle error
log.Println(err.Error())
}
req.Header.Set("Authorization", token)
// 表单方式(必须)
req.Header.Set("Content-Type", "application/json;charset=utf-8")
req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
req.Header.Set("Accept-Encoding", "gzip, deflate")
req.Header.Set("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3")
req.Header.Set("Connection", "keep-alive")
req.Header.Set("User-Agent", "Apache-HttpClient/4.3.1")
client := &http.Client{}
resp, err := client.Do(req)
log.Println(err)
log.Println(resp.Request)
log.Println(resp.Status)
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
}
log.Println("Result:")
fmt.Println(string(body))
}
个人笔记,记录留查!
追加记录:
//GET方式提交请求至服务端
func Qcc_GetUrl() {
// 请求参数
token := "1f910fca-a742-42d0-a248-0c928673414c"
// Http请求头设置
log.Println(token)
// 设置请求Url-请自行设置Url
//reqInterNme := "http://open.api.tianyancha.com/services/open/ic/baseinfo/2.0"
reqInterNme := "http://open.api.tianyancha.com/services/open/ic/staff/2.0"
// 对于使用id的参数查询 不需要进行转码,
//paramStr := "id=2944340500"
//urlString := reqInterNme + "?"+ paramStr
//log.Println("url="+urlString)
// 对于使用name的参数查询时需要进行转码
postValue := url.Values{
"name": {"唐山港国信信息服务有限公司"},
}
postString := postValue.Encode()
log.Println("postString:"+postString)
urlString := reqInterNme + "?"+ postString
log.Println("url="+urlString)
req, err := http.NewRequest("GET",urlString, nil)
if err != nil {
// handle error
log.Println(err.Error())
}
req.Header.Set("Authorization", token)
// 表单方式(必须)
req.Header.Set("Content-Type", "application/json;charset=utf-8")
//req.Header.Set("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
//req.Header.Set("Accept-Encoding", "gzip, deflate")
//req.Header.Set("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3")
//req.Header.Set("Connection", "keep-alive")
//req.Header.Set("User-Agent", "Apache-HttpClient/4.3.1")
client := http.Client{}
resp, err := client.Do(req)
log.Println(err)
log.Println(resp.Request)
log.Println(resp.Status)
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
}
log.Println("Result:")
fmt.Println(isUtf8(body))
fmt.Println(body)
//enc := mahonia.NewDecoder("utf-8")
//str := enc.ConvertString(string(body))
//log.Println("测试log输出:")
//log.Println(str)
var jsonstr string
var str bytes.Buffer
_ = json.Indent(&str, []byte(body), "", " ")
fmt.Println("formated: ", str.String())
jsonstr = str.String()
log.Println("jsonstr:" , jsonstr)
value := gjson.Get(jsonstr, "result.items.#.name")
log.Println("value:",value)
}
Json输出格式进行了调整,原来的代码有问题,显示不全。
同时针对Json的解析进行了梳理。