- http的Header設(shè)置益缎,按照官網(wǎng)或者大部分文章的設(shè)置來(lái)就可以,如下:
client := &http.Client{Transport: nil}
req, err := http.NewRequest("POST", post_login_info_url, strings.NewReader(string(info)))
if err != nil {
panic(err)
}
//header
req.Header.Set("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36")
req.Header.Set("Content-Type", "application/json;charset=UTF-8")
- golang的http form data數(shù)據(jù)設(shè)置贮尉,golang.com官網(wǎng)的例子和網(wǎng)上大部分的文章使用url.Values最后提交的時(shí)候數(shù)據(jù)不能到達(dá)后臺(tái)晰筛。 最后實(shí)在沒(méi)辦法逻锐,通過(guò)http client的transparent結(jié)合charles抓包,仔細(xì)對(duì)比網(wǎng)頁(yè)直接請(qǐng)求和go請(qǐng)求的差異才把問(wèn)題解決泣棋。 請(qǐng)求的form表單數(shù)據(jù)是一段json數(shù)據(jù)胶哲,而url.Values不行
請(qǐng)求頭的content-type為application/json
postValues := url.Values{}
postValues.Add("expire", "7")
postValues.Add("referer", "http%3A%2F%2Fwww.jikexueyuan.com%2F")
postValues.Add("uname", username)
postValues.Add("password", password)
postValues.Add("verify", verify_code)
req, err := http.NewRequest("POST", post_login_info_url, strings.NewReader(postValue.Encode()))
loginInfo := LoginInfo{
Username: username,
Password: password,
LoginYzm: "",
}
info, err := json.Marshal(loginInfo)
req, err := http.NewRequest("POST", post_login_info_url, strings.NewReader(string(info)))
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者