Go语言调用天眼查API实例

直接上代码
关键点是:参数转码

//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的解析进行了梳理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值