免费查快递跟踪信息Golang实现

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-08 13:01:14

参考ui效果:
https://www.kuaidi100.com/?from=openv

思路:
调用快递100的接口,可以免费查询快递跟踪记录了...

线上请求地址 https://test.ibanana.club/kd100/auto_com_num?num=73119782411952
线上请求地址 https://test.ibanana.club/kd100/query_num_detail?num=73119782411952&comCode=zhongtong

//路由
router.GET("/kd100/auto_com_num", controller.AutoComNum) //获取快递公司类型
router.GET("/kd100/query_num_detail", controller.QueryNumDetail) //获取快递跟踪信息

//获取快递公司类型
func AutoComNum(ctx *gin.Context) {
	//fmt.Println("AutoComNum...")
	text := ctx.Query("num") //单号
	url := "https://www.kuaidi100.com/autonumber/autoComNum?resultv2=1&text=" + text
	paramData := gin.H{}
	headerData := make(map[string]string, 1)
	headerData["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0"
	resp := SendPostWithHeard(url, paramData, headerData)
	respData := gin.H{}

	if err := json.Unmarshal([]byte(resp), &respData); err != nil {
		fmt.Println("voucher_detail_list", err)
	}
	fmt.Println(respData)
	httpext.SuccessExt(ctx, respData)
}

//获取快递跟踪信息
func QueryNumDetail(ctx *gin.Context) {
	//fmt.Println("AutoComNum...")
	postid := ctx.Query("num") //单号
	kdtype := ctx.Query("comCode") //快递类型
	temp := strconv.Itoa(int(time.Now().UnixNano())) //时间戳
	//phone := "" //手机号,默认为空
	url := fmt.Sprintf("https://www.kuaidi100.com/query?postid=%s&type=%s&temp=%s",postid,kdtype,temp)
	fmt.Println("url:",url)
	resp:=httpext.SendtGet(url)
	respData := gin.H{}

	if err := json.Unmarshal([]byte(resp), &respData); err != nil {
		fmt.Println("voucher_detail_list", err)
	}
	fmt.Println(respData)
	fmt.Println(respData["status"])
	if respData["status"]!= "200"{
		httpext.ErrorExt(ctx, e.INVALID_PARAMS,respData)
		return
	}
	httpext.SuccessExt(ctx, respData)
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!