I'm trying to download a PDF using WebView2. I can login on the browser but then i would like to download a PDF using WebClient. But this returns me to the login screen. Both WebView browsers use the same UserDataFolder. I would like to download the PDF using the cookie settings used in the WebView2 browser. Below is a sample that i'm using, but i don't know how to use it. I believe i'm on the right track...
Private Sub WV_CoreWebView2Ready1(sender As Object, e As EventArgs) Handles WebView_Browser1.CoreWebView2InitializationCompleted
WebView_Browser1.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All)
AddHandler WebView_Browser1.CoreWebView2.WebResourceRequested, AddressOf CoreWebView2_WebResourceRequested
End Sub
Private Sub CoreWebView2_WebResourceRequested(ByVal sender As Object, ByVal e As CoreWebView2WebResourceRequestedEventArgs)
e.Request.Headers.SetHeader("Cookie", XXXXX) <<< i don't know how to use this
Dim addedDate = e.Request.Headers.GetHeader("Cookie")
End Sub
Private Async Sub WebView_Browser2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView_Browser2.NavigationCompleted
Dim url As String = pathtourl
Dim fileName As String = "pdf.pdf"
Dim webClient As WebClient = New WebClient()
webClient.Headers.Add(HttpRequestHeader.Cookie, WebView_Browser2.Cookie) <<< use cookie here to login?
webClient.DownloadFileAsync(New Uri(url, UriKind.Absolute), fileName)
End Sub
It would be great i somebody can help me with this! Thanks!
Update
Dim LoginCookie As String
Private Sub WV_CoreWebView2Ready1(sender As Object, e As EventArgs) Handles WebView_Browser1.CoreWebView2InitializationCompleted
WebView_Browser1.CoreWebView2.AddWebResourceRequestedFilter("*", CoreWebView2WebResourceContext.All)
AddHandler WebView_Browser1.CoreWebView2.WebResourceRequested, AddressOf CoreWebView2_WebResourceRequested
AddHandler WebView_Browser1.CoreWebView2.WebResourceResponseReceived, AddressOf CoreWebView2_WebResourceResponseReceived
End Sub
Private Sub CoreWebView2_WebResourceResponseReceived(ByVal sender As Object, ByVal e As CoreWebView2WebResourceResponseReceivedEventArgs)
LoginCookie = e.Request.Headers.GetHeader("Login")
End Sub
Private Async Sub WebView_Browser2_NavigationCompleted(sender As Object, e As CoreWebView2NavigationCompletedEventArgs) Handles WebView_Browser2.NavigationCompleted
Dim url As String = pathtourl
Dim fileName As String = "pdf.pdf"
Dim webClient As WebClient = New WebClient()
webClient.Headers.Add(HttpRequestHeader.Cookie, LoginCookie)
webClient.DownloadFileAsync(New Uri(url, UriKind.Absolute), fileName)
End Sub
The Webclient accepts the cookie to be webClient.Headers.Add(HttpRequestHeader.Cookie, "CITY=NY") like this. But the e.Request.Headers.GetHeader("Login") doesn't get me the cookie.
Again thank you for looking!