Wget
wget ist ein freies Kommandozeilenprogramm des GNU-Projekts zum Herunterladen von Dateien aus dem Internet. Zu den unterstützten Protokollen gehören ftp, http und https. Das Programm gibt es unter anderem für Unix, GNU/Linux, OS/2, Windows und SkyOS. Es steht unter der GNU General Public License. Wget wird mit diversen Linux-Distributionen mitgeliefert.
In den MS-Office Produkten kann wget mit Visual Basic nachempfunden werden.
Download einer Datei als String (GET)
Das Makro ruft die Datei mit der Methode GET aus dem Internet ab udn gibt den Wert sie in einem String zurück.
Public Function wgetText(URL As String) As String Dim result As String Dim success As Boolean Dim oHTTP As WinHttp.WinHttpRequest Set oHTTP = New WinHttp.WinHttpRequest With oHTTP .Open Method:="GET", URL:=URL, async:=False .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko" .SetRequestHeader "Content-Type", "multipart/form-data; " .Option(WinHttpRequestOption_EnableRedirects) = True .Send success = .waitForResponse() If success Then result = .responseText Else result = "Download failed" End If End With Set oHTTP = Nothing wgetText = result End Function
Download einer Datei als String (POST)
Formulare können mit den Methoden GET und POST Parameter übergeben. Während bei der Methode GET einfach die Parameter in der URL übergeben werden, werden beid er Methode POST die Daten in eien extra Block übertragen.
Public Function wgetTextPost(URL As String, PostData As String) As String Dim result As String Dim success As Boolean Dim oHTTP As WinHttp.WinHttpRequest Set oHTTP = New WinHttp.WinHttpRequest With oHTTP .Open Method:="POST", URL:=URL, async:=False .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko" .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" .Send (PostData) success = .waitForResponse() If success Then result = .responseText Else result = "Download failed" End If End With Set oHTTP = Nothing wgetTextPost = result End Function
Test
Private Sub test() MsgBox wgetText("https://wiki.byggvir.de), vbOKOnly End Sub