VB.net HttpClient (.Net 4.8.1) 和 Cookies

问题描述 投票:0回答:1

我将用较新的 4.8.1 版本的 HttpClient 替换旧的 httpwebrequest。主要是为了让异步能够发挥作用。

我不太擅长建立cookies的语法,感觉是在摸黑。

有人可以帮我添加什么声明吗?我试图阅读的一些网站要求对其进行设置。

Using client As HttpClient = New HttpClient()
    client.Timeout = TimeSpan.FromSeconds(3)
    'HEADERS & SETTINGS
    client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0")
    client.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8")
    client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5")
    client.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1")
    client.DefaultRequestHeaders.Add("SEC-FETCH-DEST", "document")
    client.DefaultRequestHeaders.Add("SEC-FETCH-MODE", "navigate")
    client.DefaultRequestHeaders.Add("Referer", "https://www.somesite.com/")

    ' an attempt here
    'Dim cookies As CookieContainer = New CookieContainer()
    'Dim handler As HttpClientHandler = New HttpClientHandler()
    'handler.CookieContainer = cookies

    Using response As HttpResponseMessage = Await client.GetAsync(page)
        Using content As HttpContent = response.Content
            ' Get contents of page as a String.
            result = Await content.ReadAsStringAsync()
        End Using
    End Using
End Using
vb.net cookies httpclient
1个回答
0
投票

cookie 的目的是允许它们在多个请求和会话中持续存在。这意味着您不想在每个请求上创建一个全新的 cookie 容器,就像使用 HttpClient 一样。相反,尽早创建一个并保留引用以便一次又一次使用,就像您可能使用

Random
实例一样。

© www.soinside.com 2019 - 2024. All rights reserved.