download:深刻 Vue3+TypeScript 技术栈 -coderwhy 新课
package main
import (
"io/ioutil"
"net/http"
"net/url"
"fmt"
"encoding/json"
)
//———————————-
// 商品比价调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/137
//———————————-
const APPKEY = “*” // 您申请的 APPKEY
func main(){
//1. 查问反对的商城信息
Request1()
//2. 比价简略查问接口
Request2()
//3. 比价简单查问接口
Request3()
}
//1. 查问反对的商城信息
func Request1(){
// 请求地址
juheURL :="http://api2.juheapi.com/mmb/allsites"
// 初始化参数
param:=url.Values{}
// 配置请求参数, 方法外部已处理 urlencode 问题, 中文参数可能间接传参
param.Set("key",APPKEY) // 利用 APPKEY(利用粗疏页查问)
// 发送请求
data,err:=Get(juheURL,param)
if err!=nil{fmt.Errorf("请求失败, 错误信息:\\r\\n%v",err)
}else{var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{fmt.Printf("接口返回 result 字段是:\\r\\n%v",netReturn["result"])
}
}
}
//2. 比价简略查问接口
func Request2(){
// 请求地址
juheURL :="http://api2.juheapi.com/mmb/search/simple"
// 初始化参数
param:=url.Values{}
// 配置请求参数, 方法外部已处理 urlencode 问题, 中文参数可能间接传参
param.Set("keyword","") // 要查问关键字
param.Set("key",APPKEY) // 利用 APPKEY(利用粗疏页查问)
// 发送请求
data,err:=Get(juheURL,param)
if err!=nil{fmt.Errorf("请求失败, 错误信息:\\r\\n%v",err)
}else{var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{fmt.Printf("接口返回 result 字段是:\\r\\n%v",netReturn["result"])
}
}
}
//3. 比价简单查问接口
func Request3(){
// 请求地址
juheURL :="http://api2.juheapi.com/mmb/search/complex"
// 初始化参数
param:=url.Values{}
// 配置请求参数, 方法外部已处理 urlencode 问题, 中文参数可能间接传参
param.Set("keyword","") // 搜寻关键字
param.Set("key",APPKEY) // 利用 APPKEY(利用粗疏页查问)
param.Set("Site","") // 商城编号, 默认为 0,即所有
param.Set("PriceMin","") // 最低价格,0 示意无最低价格限度
param.Set("PriceMax","") // 最高价格,0 示意无最高价格限度
param.Set("PageNum","") // 页号,大于 0
param.Set("PageSize","") // 每页返回后果数,下限为 50
param.Set("Orderby","") // 排序规定,1、score 按权重从高到底排序,默认 2、price 按价格从底到高排序 3、sell 按销售从高到底排序
param.Set("ZiYing","") // 是否自营
param.Set("ExtraParameter","") //0: 后果蕴含淘宝数据,1: 后果不蕴含淘宝数据
// 发送请求
data,err:=Get(juheURL,param)
if err!=nil{fmt.Errorf("请求失败, 错误信息:\\r\\n%v",err)
}else{var netReturn map[string]interface{}
json.Unmarshal(data,&netReturn)
if netReturn["error_code"].(float64)==0{fmt.Printf("接口返回 result 字段是:\\r\\n%v",netReturn["result"])
}
}
}
// get 网络请求
func Get(apiURL string,params url.Values)(rs[]byte ,err error){
var Url *url.URL
Url,err=url.Parse(apiURL)
if err!=nil{fmt.Printf("解析 url 谬误:\\r\\n%v",err)
return nil,err
}
// 如果参数中有中文参数, 这个方法会进行 URLEncode
Url.RawQuery=params.Encode()
resp,err:=http.Get(Url.String())
if err!=nil{fmt.Println("err:",err)
return nil,err
}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)
}
// post 网络请求 ,params 是 url.Values 类型
func Post(apiURL string, params url.Values)(rs[]byte,err error){
resp,err:=http.PostForm(apiURL, params)
if err!=nil{return nil ,err}
defer resp.Body.Close()
return ioutil.ReadAll(resp.Body)