[Gambas-user] gb.qt5.webkit Cookies
james at lixce.com
james at lixce.com
Thu Aug 23 06:55:35 CEST 2018
Has anyone been able to store and read cookies with qt5.webkit?
I'm iterating through WebView1.Cookies and writting each field and a key to a file when I close the form.
Public Sub CookieJar_Store()
Dim cFile As File
Dim macaroon As Cookie
File.Save("/home/james/macaroons.txt", "")
cFile = Open "/home/james/macaroons.txt" For Write
Output To cFile
For Each macaroon In WebView1.Cookies
Print "Domain: " & macaroon.Domain
Print "Expire: " & macaroon.ExpirationDate
Print "HttpON: " & macaroon.HttpOnly
Print "Name: " & macaroon.Name
Print "Path: " & macaroon.Path
Print "Secure: " & macaroon.Secure
Print "Session: " & macaroon.Session
Print "Value: " & macaroon.Value
Next
Output To Default
Close cFile
End
Then when on open I read them back into an array, then copy that array to WebView1.Cookies
(kind ov verbose,trying to figure out waht is happening
Public Sub CookieJar_Fill()
Dim cFile As File
Dim sLine As String
Dim macaroon As New Cookie
Dim myCookies As New Cookie[]
If Not Exist("/home/james/macaroons.txt") Then Return
cFile = Open "/home/james/macaroons.txt" For Input
While Not Eof(cFile)
Line Input #cFile, sLine
'sLine = Replace(sLine, "\n", "")
If sLine Begins "Domain: " Then
macaroon.Domain = String.Right(sLine, -8)
Endif
If sLine Begins "Expire: " Then
macaroon.ExpirationDate = String.Right(sLine, -8)
Endif
If sLine Begins "HttpON: " Then
macaroon.HttpOnly = String.Right(sLine, -8)
Endif
If sLine Begins "Name: " Then
macaroon.Name = String.Right(sLine, -6)
Endif
If sLine Begins "Path: " Then
macaroon.Path = String.Right(sLine, -6)
Endif
If sLine Begins "Secure: " Then
macaroon.Secure = String.Right(sLine, -8)
Endif
If sLine Begins "Value: " Then
macaroon.Value =String.Right(sLine, -7)
myCookies.Add(macaroon)
Endif
Wend
Close cFile
WebView1.Cookies = myCookies
Print "Cookie Count: " & WebView1.Cookies.Count
End
When I Print the cookies to the console using a sub similar to the CookieJar_Store, after loading, they look the same as the text file (minus the keys of course). But Google, Amazon, NFCU refuse to accept them, the sites act the same as if there are no cookies at all. I don't think I need to store the session cookies but makes no difference if I don't.
I have looked at the WebBrowser example and Gentleman Borwser but niether of them do anything with cookies. There is an old project called Aredia that is written in Gambas but I cannot figure out what they were doing with cookies.
So, anyone figured out a way to save and restore cookies in gb.qt5.webkit.
Thanks, -j
More information about the User
mailing list