get.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package pdd
  2. import (
  3. "duoduo/conf"
  4. "fmt"
  5. "github.com/asmcos/requests"
  6. "reflect"
  7. "strconv"
  8. )
  9. //
  10. func DuoDuoGet(url string) (outData string, err error) {
  11. req := requests.Requests()
  12. resp, err := req.Get(url)
  13. if err != nil {
  14. return "", err
  15. } else {
  16. fmt.Print("resp = ", resp.R)
  17. return resp.Text(), err
  18. }
  19. }
  20. func Sign() {
  21. }
  22. // 解析 拼接请求
  23. func Get(getData interface{}, url string) (outData string, err error) {
  24. //加载配置
  25. confIni, errConf := conf.ConnIni()
  26. if errConf != nil {
  27. fmt.Println(errConf)
  28. }
  29. host := confIni.MustValue("tisp", "postadd")
  30. // 1、通过json变量来获取所有Get的参数
  31. parameter := ""
  32. getType := reflect.TypeOf(getData)
  33. getValue := reflect.ValueOf(getData)
  34. for i := 0; i < getType.NumField(); i++ {
  35. valueType := getType.Field(i).Type.String()
  36. value := getValue.Field(i)
  37. tagName := getType.Field(i).Tag.Get("json")
  38. // 如果是int类型,并且是0,抛弃
  39. if valueType == "int" && value.Int() != 0 {
  40. if parameter != "" {
  41. parameter += "&"
  42. }
  43. parameter += tagName + "=" + strconv.FormatInt(value.Int(), 10)
  44. }
  45. // 如果是string类型,并且是空字符串,抛弃。
  46. if valueType == "string" && value.String() != "" {
  47. if parameter != "" {
  48. parameter += "&"
  49. }
  50. parameter += tagName + "=" + value.String()
  51. }
  52. }
  53. // 2、组合Url
  54. urlAddress := fmt.Sprintf("%s%s?%s", host, url, parameter)
  55. fmt.Println("url = ", urlAddress)
  56. // 3、请求Html
  57. req := requests.Requests()
  58. resp, err := req.Get(urlAddress)
  59. if err != nil {
  60. fmt.Println("err = ", err.Error())
  61. return "", err
  62. } else {
  63. return resp.Text(), nil
  64. }
  65. }