main.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. appid = "jyPz5XQgMABgVeTkdOMTBx"
  18. key = "349300qe"
  19. apiurl = "https://api.jianyu360.com"
  20. )
  21. func main() {
  22. getData()
  23. }
  24. func getToken() (token string) {
  25. tm := fmt.Sprintf("%d", time.Now().Unix())
  26. res := post(apiurl+"/user/access_token", map[string]string{
  27. "appid": appid,
  28. "timestamp": tm,
  29. "signature": MD5(appid + tm + key),
  30. })
  31. log.Println(res)
  32. if res != nil && res["access_token"] != "" {
  33. token, _ = res["access_token"].(string)
  34. }
  35. return
  36. }
  37. func getData() {
  38. token := getToken()
  39. data := post(apiurl+"/data/getalldata", map[string]string{
  40. "access_token": token,
  41. "day": "0",
  42. "next": "1",
  43. })
  44. log.Println(data)
  45. }
  46. func MD5(str string) string {
  47. h := md5.New()
  48. h.Write([]byte(str))
  49. return strings.ToUpper(hex.EncodeToString(h.Sum(nil)))
  50. }
  51. func post(url string, form map[string]string) (data map[string]interface{}) {
  52. str := ""
  53. for k, v := range form {
  54. str += "&" + k + "=" + v
  55. }
  56. log.Println(str)
  57. res, err := http.Post(url, "application/x-www-form-urlencoded", strings.NewReader(str))
  58. if err != nil {
  59. log.Println("post err:", err.Error())
  60. } else if res.Body != nil {
  61. defer res.Body.Close()
  62. bs, _ := ioutil.ReadAll(res.Body)
  63. json.Unmarshal(bs, &data)
  64. }
  65. return
  66. }