首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改http.Client Cookie值

更改http.Client Cookie值
EN

Stack Overflow用户
提问于 2018-04-02 00:01:49
回答 1查看 509关注 0票数 0

我有下面的代码,可以按预期工作,但是在第一个请求时,我有我想要的cookie,并且只想在发送另一个请求之前更改1 cookie的值。到目前为止,我还相当不成功。

代码语言:javascript
复制
jar, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List})
if err != nil {
  log.Fatal(err)
}

client = &http.Client{
    Jar: jar,
}

firstRequest() // aka login

mainLinkedinURL := "http://www.example.com/"
cookieURL, _ := url.Parse(mainLinkedinURL)
for j, i := range jar.Cookies(cookieURL) {
    if i.Name == "JSESSIONID" {
        jar.Cookies(cookieURL)[j].Value = "Another New Value"
        i.Value = "Another way of setting a new value"
    }
}
secondRequest() // request after changing cookie

这只是从http.Client的角度来看,而不是服务器端cookie管理。

EN

回答 1

Stack Overflow用户

发布于 2018-04-02 02:38:39

要更改cookies的值,需要使用SetCookies方法。

因为您只需要更改一个Cookie值,所以您需要这样的东西:

代码语言:javascript
复制
mainLinkedinURL := "http://www.example.com/"
cookieURL, err := url.Parse(mainLinkedinURL)
if err != nil {
    // handle error properly
}
cookies := jar.Cookies(cookieURL)
for _, cookie := range cookies {
    // note: if there is no cookie with such a name 
    // then a new value would not appear, please pay attention to this
    if cookie.Name == "JSESSIONID" {
        cookie.Value = "Another New Value"
        break
    }
}
jar.SetCookies(cookieURL, cookies)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49599927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档