func
(u *User) login()
error
{
URL := fmt.Sprintf(
`https://api-user.huami.com/registrations/+86%s/tokens`
, u.phoneNumber)
str :=
"client_id=HuaMi&password="
+ u.password +
`&redirect_uri=https://s3-us-west-2.amazonaws.com/hm-registration/successsignin.html&token=access`
req, err := http.NewRequest(
"POST"
, URL, strings.NewReader(str))
if
err !=
nil
{
return
err
}
req.Header.Set(
"Content-Type"
,
"application/x-www-form-urlencoded;charset=UTF-8"
)
req.Header.Set(
"User-Agent"
,
"MiFit/4.6.0 (iPhone; iOS 14.0.1; Scale/2.00)"
)
client := &http.Client{}
client.CheckRedirect =
func
(req *http.Request, via []*http.Request)
error
{
return
http.ErrUseLastResponse
}
resp, err := client.Do(req)
if
err !=
nil
{
return
err
}
defer
resp.Body.Close()
if
resp.StatusCode != 303 {
return
errors.New(
"登录失败!"
)
}
location := resp.Header.Get(
"Location"
)
u.access = strings.Split(location,
"&"
)[1][7:]
return
nil
}