登录
首页 >  Golang >  Go问答

登录后如何获取带Cookie的请求

来源:stackoverflow

时间:2024-03-08 14:18:13 249浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《登录后如何获取带Cookie的请求》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我试图获取 jadwalurl 的一些 resp.body。 jadwalurl登录后就可以访问,所以我在请求中添加了cookie头。但遗憾的是,响应并不完全是我想要的(响应是主页)。我用 postman 尝试了类似的流程。我得到了我想要的 jadwalurl 正文。我的代码有什么问题吗?经过 3 个小时的搜索,我仍然没有得到解决方案。

func main() {
    data := url.Values{}
    data.Set("username", username)
    data.Set("password", password)
    client := &http.Client{}
    r, _ := http.NewRequest(http.MethodPost, loginURL, strings.NewReader(data.Encode()))
    r.Header.Add("Content-Type", "application/x-www-form-urlencoded")
    resp, _ := client.Do(r)
    cookie := resp.Cookies()
    fmt.Println(cookie)
    fmt.Println(resp.Status)

    req, err := http.NewRequest(http.MethodGet, jadwalURL, nil)
    if err != nil {
        panic(err)
    }

    req.AddCookie(&http.Cookie{
        Name:   cookie[0].Name,
        Value:  cookie[0].Value,
        Domain: domainURL,
        Path:   "/",
    })

    jadwalResp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(nil)
    }
    body, _ := ioutil.ReadAll(jadwalReq.Body)
    jadwalResp.Body.Close()
    fmt.Println(string(body))
}

解决方案


嗨,如果您遇到此问题,我只需更改创建一个新客户端,问题是我尝试向客户端发出请求。

newClient := &http.Client{}
// then
jadwalResp, err := newClient.Do(req)

今天关于《登录后如何获取带Cookie的请求》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>