An open API service indexing awesome lists of open source software.

https://github.com/charonn0/xojo-cookieengine

A HTTP cookie engine for Realbasic and Xojo
https://github.com/charonn0/xojo-cookieengine

cookie-manager realbasic xojo

Last synced: about 2 months ago
JSON representation

A HTTP cookie engine for Realbasic and Xojo

Awesome Lists containing this project

README

          

# Xojo-CookieEngine

The [CookieEngine](https://github.com/charonn0/Xojo-CookieEngine/wiki/CookieEngine) class implements web browser-like HTTP cookie management (a "cookie engine"). It can be used with the Realstudio HTTPSocket, Xojo.Net.HttpSocket, Xojo URLConnection, or any other HTTP client.

If you are on an older version of Xojo (or still using RealStudio) then you must delete the `ParseResponseHeaders(URL As String, ResponseHeaders As Iterable)` method before using this class. Leave the other `ParseResponseHeaders` method intact.

## Example

### Xojo URLConnection
```realbasic
Dim engine As New CookieEngine ' create a new, empty CookieEngine
engine.Load(GetFolderItem("cookies.txt")) ' optionally load cookies from a file
engine.SetCookie("foo", "bar", ".example.com") ' set cookies manually

Dim connection As New URLConnection
Dim url As String = "https://www.example.com/"

' before a request call GenerateRequestHeader() to get a Cookie: header for the URL
Dim cookie As String = engine.GenerateRequestHeader(url)
If cookie <> "" Then connection.RequestHeader("Cookie") = cookie

Call connection.SendSync("GET", url, 10)

' after a request call ParseResponseHeaders() to collect any cookies that were set
engine.ParseResponseHeaders(url, connection.ResponseHeaders)

' optionally save cookies to a file
engine.Save(GetFolderItem("cookies.txt"))

```

### RealStudio HTTPSecureSocket
```realbasic
Dim engine As New CookieEngine ' create a new, empty CookieEngine
engine.Load(GetFolderItem("cookies.txt")) ' optionally load cookies from a file
engine.SetCookie("foo", "bar", ".example.com") ' set cookies manually

Dim connection As New HTTPSecureSocket
Dim url As String = "https://www.example.com/"

' before a request call GenerateRequestHeader() to get a Cookie: header for the URL
Dim cookie As String = engine.GenerateRequestHeader(url)
If cookie <> "" Then connection.SetRequestHeader("Cookie", cookie)

Call connection.Get(url, 10)

' after a request call ParseResponseHeaders() to collect any cookies that were set
engine.ParseResponseHeaders(url, connection.PageHeaders)

' optionally save cookies to a file
engine.Save(GetFolderItem("cookies.txt"))
```

## Become a sponsor
If you use this code in a commercial project, or just want to show your appreciation, please consider sponsoring me through GitHub. https://github.com/sponsors/charonn0