main.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package main
  2. import (
  3. "crypto/md5"
  4. "encoding/hex"
  5. "encoding/json"
  6. "fmt"
  7. "io/ioutil"
  8. "log"
  9. "net/http"
  10. "strings"
  11. "time"
  12. )
  13. var (
  14. appid = "jyNjdXQgUDAwdaTklMPz5i"
  15. key = "404M0v2j"
  16. apiurl = "http://127.0.0.1:8801"
  17. //apiurl = "https://api.jianyu360.com"
  18. )
  19. func main() {
  20. getData()
  21. }
  22. func getToken() (token string) {
  23. tm := fmt.Sprintf("%d", time.Now().Unix())
  24. res := post(apiurl+"/user/access_token", map[string]string{
  25. "appid": appid,
  26. "timestamp": tm,
  27. "signature": MD5(appid + tm + key),
  28. })
  29. if res != nil && res["access_token"] != "" {
  30. token, _ = res["access_token"].(string)
  31. }
  32. return
  33. }
  34. func getData() {
  35. token := getToken()
  36. data := post(apiurl+"/data/getalldata", map[string]string{
  37. "access_token": token,
  38. "day": "-1",
  39. })
  40. log.Println(data)
  41. }
  42. func MD5(str string) string {
  43. h := md5.New()
  44. h.Write([]byte(str))
  45. return strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
  46. }
  47. func post(url string, form map[string]string) (data map[string]interface{}) {
  48. str := ""
  49. for k, v := range form {
  50. str += "&" + k + "=" + v
  51. }
  52. res, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader(str))
  53. if err != nil {
  54. log.Println("post err:", err.Error())
  55. } else if res.Body != nil {
  56. defer res.Body.Close()
  57. bs, _ := ioutil.ReadAll(res.Body)
  58. json.Unmarshal(bs, &data)
  59. }
  60. return
  61. }