清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | 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) } |