post.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package pdd
  2. import (
  3. "bytes"
  4. "duoduo/conf"
  5. "duoduo/tools"
  6. "duoduo/tools/app"
  7. "fmt"
  8. "io/ioutil"
  9. "net/http"
  10. )
  11. func PostPdd(inputObj interface{}, outputObj interface{}, function string) error {
  12. //数据转json
  13. jsonData, err := tools.JsonMarshal(inputObj)
  14. if err != nil {
  15. fmt.Println(err.Error())
  16. return err
  17. }
  18. fmt.Print("jsonData = ", jsonData)
  19. confIni, errConf := conf.ConnIni()
  20. if errConf != nil {
  21. fmt.Println(errConf)
  22. }
  23. path := confIni.MustValue("pdd", "api_http")
  24. fmt.Print(path)
  25. path = "https://gw-api.pinduoduo.com/api/router?type=pdd.ddk.goods.search&data_type=JSON&client_id=a5d05569c6584a50bfb6600b2d150bae&timestamp=1620461572&sign=8F2C23805C8B8A388AFB512DD3EAD727"
  26. request, err := http.NewRequest("POST", path, nil)
  27. if err != nil {
  28. fmt.Println(err.Error())
  29. return err
  30. }
  31. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  32. client := http.Client{}
  33. //创建客户端
  34. resp, err := client.Do(request) //发送请求
  35. if err != nil {
  36. fmt.Printf("client.Do%v", err)
  37. return err
  38. }
  39. respBytes, err := ioutil.ReadAll(resp.Body)
  40. fmt.Print(string(respBytes))
  41. return nil
  42. }
  43. //调用阿里接口
  44. func Post(inputObj interface{}, outputObj interface{}, function string) error {
  45. //加载配置
  46. confIni, errConf := conf.ConnIni()
  47. if errConf != nil {
  48. fmt.Println(errConf)
  49. }
  50. hostAdd := fmt.Sprintf("%s", confIni.MustValue("aliSet", "ali_host"))
  51. fmt.Println(hostAdd)
  52. //数据转json
  53. jsonData, err := tools.JsonMarshal(inputObj)
  54. if err != nil {
  55. fmt.Println(err.Error())
  56. return err
  57. }
  58. app.TispELKLogs(function, "POST", jsonData)
  59. fmt.Print("json = ", jsonData)
  60. request, err := http.NewRequest("POST", hostAdd, bytes.NewBuffer([]byte(jsonData)))
  61. if err != nil {
  62. fmt.Println(err.Error())
  63. return err
  64. }
  65. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  66. client := http.Client{}
  67. //创建客户端
  68. resp, err := client.Do(request) //发送请求
  69. if err != nil {
  70. fmt.Printf("client.Do%v", err)
  71. return err
  72. }
  73. respBytes, err := ioutil.ReadAll(resp.Body)
  74. if err != nil {
  75. fmt.Printf("ioutil.ReadAll%v", err)
  76. return err
  77. }
  78. fmt.Println(string(respBytes))
  79. err = tools.JsonUnmarshal(string(respBytes), outputObj)
  80. if err != nil {
  81. return err
  82. }
  83. app.TispELKOutDataLogs(function, "POST", string(respBytes))
  84. return nil
  85. ////byte数组直接转成string,优化内存
  86. //str := (*string)(unsafe.Pointer(&respBytes))
  87. }