package test import ( "fmt" "net/http" "time" "github.com/imroc/req/v3" ) func BuglyHelper() { var rsp BuglyRsp url := `https://bugly.qq.com/v2/search?start=0&userSearchPage=%2Fv2%2Fworkbench%2Fapps&pid=2&platformId=2&date=last_7_day&sortOrder=desc&useSearchTimes=3&rows=10&sortField=matchCount&appId=447d39aea1&fsn=8799e426-34c8-4a75-bd0d-1e186509eb5e` client := req.C(). SetTimeout(5 * time.Second) resp, err := client.R(). SetCookies(cookies()...). SetHeader("X-Token", "264561818"). SetHeader("Accept", "application/json;charset=utf-8"). SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"). // SetHeader("Cookie", "bugly-session=s%3AqQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au%2F78LCSHj5zhwqe%2FljmOXGP7TBW3yHnMwypYesrn34;bugly_session=eyJpdiI6InV1R3R0TmZ2S01HTkVBSGpucThXZXc9PSIsInZhbHVlIjoiam1lM3o1cVJISjNyZVJ6U3JJYzhmK1M1UVJiUlhCS1wvRTh6T1d4XC93NDdiY3FITVNJQXRpVFd6Y1BBV1wvZTBhOWR0MHBxNTlRdGNYdExoS2VWK2swckE9PSIsIm1hYyI6IjliMDExNTdmMzgyODFmNTEyYzVmMGQ3MGMxYTdjOTZmMDNjYzVjYzlkYzcxMmVjNmUyMzk4YWE2OTRmNzY4NzAifQ%3D%3D;"). SetHeader("Accept", "application/json;charset=utf-8"). SetHeader("Accept-Encoding", "gzip, deflate, br"). SetHeader("Accept-Language", "zh-CN,zh;q=0.9"). SetHeader("Connection", "keep-alive"). SetSuccessResult(&rsp). // SetResult(&rsp). Get(url) if err != nil { fmt.Println(err) return } if resp.IsErrorState() { fmt.Println(resp.StatusCode) return } if len(rsp.Ret.IssueList) > 0 { fmt.Println(len(rsp.Ret.IssueList)) } else { fmt.Println(resp.String()) } } func cookies() []*http.Cookie { var cookies []*http.Cookie // var c1 http.Cookie // c1.Name = "bugly-session" // c1.Value = "s:qQZzQXsgw0wv_lFKAOT88ND_yh_B1f6H.au/78LCSHj5zhwqe/ljmOXGP7TBW3yHnMwypYesrn34" // cookies = append(cookies, &c1) var c3 http.Cookie c3.Name = "bugly_session" c3.Value = "eyJpdiI6InpwcG1uZW5XaWhrOWxpb1FEUWlVeEE9PSIsInZhbHVlIjoiK3NMd3cyZ0N0eWJSc21DRXhTRlRvME8yb0ZCdjlmcW5EMjlISmQ3XC9tXC80UDhCemVlUG1FS25LemJEb0tlSXY3MGRXQjBkVkJMVHR0TGhldHlMYStKUT09IiwibWFjIjoiZTdmZTk4MDNlZjgyZTIxNGY1NzE1YTc1YzgyMzdhZGVmYWM2YTgxNDJjMDZlNDJkODIyMjJkZGQ3ZjRkMTM4YiJ9" cookies = append(cookies, &c3) return cookies } type BuglyRsp struct { Status int `json:"status"` Msg string `json:"msg"` Ret struct { AppID string `json:"appId"` PlatformID string `json:"platformId"` IssueList []struct { IssueID int `json:"issueId"` IssueHash string `json:"issueHash"` IssueCount int `json:"issueCount"` CrashInfo struct { CrashID string `json:"crashId"` TagID int `json:"tagId"` } `json:"crashInfo"` IssueVersions []struct { Version string `json:"version"` Count int `json:"count"` DeviceCount int `json:"deviceCount"` } `json:"issueVersions"` FtName string `json:"ftName"` IssueDocMap struct { ID string `json:"id"` IssueID int `json:"issueId"` Status int `json:"status"` Count int `json:"count"` SysCount int `json:"sysCount"` ProductVersion string `json:"productVersion"` DeviceCount int `json:"deviceCount"` SysDeviceCount int `json:"sysDeviceCount"` LastUpdateTime string `json:"lastUpdateTime"` FirstUploadTime string `json:"firstUploadTime"` LastUploadTime string `json:"lastUploadTime"` ExpName string `json:"expName"` ExpFingure string `json:"expFingure"` IsSystemStack int `json:"isSystemStack"` KeyStack string `json:"keyStack"` Type string `json:"type"` AverageBattery float64 `json:"averageBattery"` AverageMemory float64 `json:"averageMemory"` AverageSD float64 `json:"averageSD"` AverageStorage float64 `json:"averageStorage"` CrossVersionIssueID int `json:"crossVersionIssueId"` VersionIssueIds []int `json:"versionIssueIds"` SubIssueVersions string `json:"subIssueVersions"` ExpMessage string `json:"expMessage"` RootCount int `json:"rootCount"` SysRootCount int `json:"sysRootCount"` ExpAddr string `json:"expAddr"` RefSdkAppID string `json:"refSdkAppId"` RefSdkIssueID string `json:"refSdkIssueId"` CrashRecordCount int `json:"crashRecordCount"` } `json:"issueDocMap"` CrossVersionIssueID int `json:"crossVersionIssueId"` EsCount int `json:"esCount"` EsDeviceCount int `json:"esDeviceCount"` } `json:"issueList"` NumFound int `json:"numFound"` CrashNums int `json:"crashNums"` AnrNums int `json:"anrNums"` ErrorNums int `json:"errorNums"` } `json:"ret"` }