Platforms to show: All Mac Windows Linux Cross-Platform

/CURL/CURL text download


Required plugins for this example: MBS CURL Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /CURL/CURL text download

This example is the version from Wed, 3rd Jan 2023.

Project "CURL text download.xojo_binary_project"
FileTypes
Filetype text
End FileTypes
Class Window1 Inherits Window
Control PushButton1 Inherits PushButton
ControlInstance PushButton1 Inherits PushButton
EventHandler Sub Action() DoDownload url.text End EventHandler
End Control
Control URL Inherits TextField
ControlInstance URL Inherits TextField
End Control
Control StaticText1 Inherits Label
ControlInstance StaticText1 Inherits Label
End Control
Control ResultText Inherits Label
ControlInstance ResultText Inherits Label
End Control
Control TextArea1 Inherits TextArea
ControlInstance TextArea1 Inherits TextArea
End Control
Control TextArea2 Inherits TextArea
ControlInstance TextArea2 Inherits TextArea
End Control
Private Sub DoDownload(URL as string) dim d as new CURLMBS // collect output as we don't have events to handle it right away d.CollectDebugMessages = true d.CollectOutputData = true d.CollectHeaders = true // write debug log d.OptionVerbose = true // download here d.OptionURL = URL // if you use SSL, maybe put in a certificate or disable verification? d.OptionSSLVerifyHost = 0 d.OptionSSLVerifyPeer = 0 // run download dim e as integer = d.Perform // check result dim s as string = d.OutputData TextArea1.text = FixText(S) ResultText.text="Result: "+str(e) dim DebugMessage as string = d.DebugMessages // check in debugger on error TextArea2.text = FixText(DebugMessage) if e <> 0 then break end if End Sub
Private Function FixText(s as string) As string // fix text encoding if s.Encoding <> nil then // ok? elseif encodings.UTF8.IsValidData(s) then s = DefineEncoding(s, Encodings.UTF8) else s = DefineEncoding(s, encodings.ISOLatin1) end if // fix line endings s = ReplaceLineEndings(s, EndOfLine) Return s End Function
End Class
MenuBar MenuBar1
MenuItem UntitledMenu1 = ""
MenuItem FileMenu = "&File"
MenuItem FileQuit = "Quit"
MenuItem UntitledMenu5 = ""
MenuItem EditMenu = "&Edit"
MenuItem EditUndo = "&Undo"
MenuItem UntitledMenu0 = "-"
MenuItem EditCut = "Cu&t"
MenuItem EditCopy = "&Copy"
MenuItem EditPaste = "&Paste"
MenuItem EditClear = "Clear"
MenuItem UntitledMenu4 = ""
MenuItem UntitledMenu3 = ""
MenuItem UntitledMenu2 = ""
End MenuBar
Class App Inherits Application
EventHandler Sub Open() // CURL libraries available on MBS Website in download area // or comment out on Mac/Linux to load system libraries #if TargetWin32 then dim f as FolderItem #if Target64Bit then f = GetFolderItem("libcurl64.dll") #else f = GetFolderItem("libcurl32.dll") #endif if f.Exists then if CURLMBS.LoadLibrary(f) then MsgBox "Library loaded." else MsgBox CURLMBS.LoadErrorString end if else Break // missing? MsgBox "missing file?"+EndOfLine+EndOfLine+f.Name end if #elseif TargetMacOS then dim f as FolderItem = GetFolderItem("libcurl.dylib") if f.Exists then if CURLMBS.LoadLibrary(f) then MsgBox "Library loaded." else MsgBox CURLMBS.LoadErrorString end if else Break // missing? MsgBox "missing file?"+EndOfLine+EndOfLine+f.Name end if #else break // todo #endif End EventHandler
End Class
End Project

See also:

The items on this page are in the following plugins: MBS CURL Plugin.


The biggest plugin in space...