【问题标题】:Manipulating cookies within a CookieContainer while being added添加时在 CookieContainer 中操作 cookie
【发布时间】:2019-10-05 09:45:31
【问题描述】:

正如标题所说。我正在尝试编辑 HttpClientHandler、HttpClient 或 CookieContainer 的继承实例,每次 HttpClient 调用来自 CookieContainer 的.Add(在通过自动请求接收它们之后)以编辑 Cookie/Cookie 的各种比例,例如如到期日期等等。

当然,CookieContainer 的 Add sub 只是一个例子,如果我可以通过任何其他函数来操作我想要的东西,它不会有任何区别。

我需要在添加之前/同时编辑每个 cookie,而不是之后(手动迭代)。那是我的目标。只要一切都是自动完成的,并且不必调用某些东西来遍历每个 cookie 并编辑它们,任何答案都是受欢迎的。

例子:

Public Class CustomCookieContainer
Inherits Net.CookieContainer

Protected Overrides Sub OnAdd(cookie as Cookie)
  cookie.Name = $"BlahBlah-{cookie.name}"
  cookie.ExpireDate = DateTime.Now.AddYear(2185816)
  Add(cookie, true)
End Sub

End Class

【问题讨论】:

    标签: c# .net vb.net httpclient cookiecontainer


    【解决方案1】:

    你的意思是这样的吗?

    For Each coookie In cookieContainer.GetCookies(Uri)
      If coookie.ToString().Contains("XSRF-TOKEN") Then
         'do stuff here like:
         Dim CookieLenght As Integer = coookie.ToString().Length
         Dim c() As Char = coookie.ToString().ToCharArray(11, CookieLenght - 11)
         Dim d As String = New String(c)
         request.Headers.Add("X-XSRF-TOKEN", c)
         request.Headers.Add("DNT", "1")
      End If
    Next
    

    【讨论】:

    • 没有。我只想重命名它们并在将它们添加(由 httpclient 自动添加)到 CookieContainer 之前编辑每个 cookie 的到期日期。我想要一个可以自动处理每个 cookie 的硬代码,我不想遍历每个 cookie 并在每个请求后更改值。我希望它们得到即时处理。
    • 添加了一个例子。
    • @Ebiツ 我认为你不能在获得响应 cookie 名称之前操纵 cookie。对于设置日期,您使用Response.Cookies("cookiename").Expires = DateTime.Now.AddDays(1),但我不是专家。有一个cookiemanipulation链接link
    • 是的,我知道这件事。但是我问了这个问题,以防万一我遗漏了什么。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2020-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2011-04-09
    • 2013-07-02
    相关资源
    最近更新 更多