登录的初始网址为:http://jwxt.wit.edu.cn/jsxsd/

这里我们先对这个网址发送GET请求

urlLogin1 := "http://jwxt.wit.edu.cn/jsxsd/"
	method := "GET"
	clientLogin1 := &http.Client{}
	reqLogin1, err := http.NewRequest(method, urlLogin1, nil)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	resLogin1, err := clientLogin1.Do(reqLogin1)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	defer resLogin1.Body.Close()
	cookie := resLogin1.Cookies()

本次发起请求第一次获取登录cookie


通过fidder抓包得知实际表单提交的数据网址为:http://jwxt.wit.edu.cn/jsxsd/xk/LoginToXk

并且通过username和password的base64编码拼接形成encoded

使用golang语言提供的base64加密包对提交数据进行加密

encodeduser := base64.StdEncoding.EncodeToString([]byte(username))
encodedpass := base64.StdEncoding.EncodeToString([]byte(password))
encoded := encodeduser + "%%%" + encodedpass

 得到提交的加密数据,并向网址发送登录请求,并添加初次获取的cookie使之生效

    reqLogin2, err := http.NewRequest("POST", urlLogin2, payload)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	reqLogin2.Header.Add("Content-Type", "application/x-www-form-urlencoded")
	reqLogin2.Header.Add("Cookie", cookies)

成功模拟登录。