package pdd import ( "duoduo/conf" "fmt" "github.com/asmcos/requests" "reflect" "strconv" ) // func DuoDuoGet(url string) (outData string, err error) { req := requests.Requests() resp, err := req.Get(url) if err != nil { return "", err } else { fmt.Print("resp = ", resp.R) return resp.Text(), err } } func Sign() { } // 解析 拼接请求 func Get(getData interface{}, url string) (outData string, err error) { //加载配置 confIni, errConf := conf.ConnIni() if errConf != nil { fmt.Println(errConf) } host := confIni.MustValue("tisp", "postadd") // 1、通过json变量来获取所有Get的参数 parameter := "" getType := reflect.TypeOf(getData) getValue := reflect.ValueOf(getData) for i := 0; i < getType.NumField(); i++ { valueType := getType.Field(i).Type.String() value := getValue.Field(i) tagName := getType.Field(i).Tag.Get("json") // 如果是int类型,并且是0,抛弃 if valueType == "int" && value.Int() != 0 { if parameter != "" { parameter += "&" } parameter += tagName + "=" + strconv.FormatInt(value.Int(), 10) } // 如果是string类型,并且是空字符串,抛弃。 if valueType == "string" && value.String() != "" { if parameter != "" { parameter += "&" } parameter += tagName + "=" + value.String() } } // 2、组合Url urlAddress := fmt.Sprintf("%s%s?%s", host, url, parameter) fmt.Println("url = ", urlAddress) // 3、请求Html req := requests.Requests() resp, err := req.Get(urlAddress) if err != nil { fmt.Println("err = ", err.Error()) return "", err } else { return resp.Text(), nil } }