XML Datei vom Server laden https

Prefekt

Grünschnabel
Hallo,
ich möchte eine XML Datei via https von einem Server laden und auf die Felder zugreifen.

Hat jemand eine Idee, wie das geht oder gitb's ein paar Codebeispiele?

servus
 
Hallo,

hat es mittlerweile eine Lösung hierfür gegeben?
Bin nämlich auch an selbiger interessiert.

Vielen Dank vorab

Gruß
XLF
 
Hier findet Ihr Informationen zum Internet-Zugriff von VB aus.

Grundsätzlich ist zu sagen, dass mit VB vieles möglich ist, jedoch hier vermutlich niemand auf eine derart schwammige Fragestellung antwortet.

Grundfrage ist natürlich zunächst, mit welcher VB-Version gearbeitet wird. Weiter geben wir gern Informationen zu Detailfragen, dazu muss aber bekannt gegeben werden, wie weit Du schon bist und wo genau es hakt.

Falls noch keine VB-Kenntnisse vorhanden sind, sollte in jedem Fall eines der Tutorials durchgearbeitet werden.
 
Also die Version war ja eigentlich klar, befinden uns schließlich im Visual Bais 6.0 Unterforum.

Der Link brachte leider nichts, da dort nichts zu HTTPS zu finden ist.
Ich möchte gerne eine XML Datei herunterladen, die von einer PHP Seite generiert wird.
Also im Browser rufe ich normalerweise https://irgendeineURL/datei.php?PARAMETER
auf und bekomme die XML Sachen angezeigt.
Ich habe über das Winsock Objekt auch ein Download von einer HTTP-Seite hinbekommen.
Dies mache ich so:

Code:
' Datei-Download
Public Function DoDownload(ByVal strURL As String, _
  ByVal strLocalFile As String) As Boolean
 
  ' Fehlerbehandlung aktivieren
  On Error GoTo Download_Error
 
  ' Ggf. http:// entfernen
  If LCase$(Left$(strURL, 8)) = "https://" Then
    strURL = Mid$(strURL, 9)
  End If
 
  ' RemoteHost
  strRemoteHost = Left$(strURL, InStr(1, strURL, "/") - 1)
 
  ' relativer Pfad
  strFilePath = Mid$(strURL, InStr(1, strURL, "/"))
 
  ' Lokaler Dateiname (ggf. löschen)
  strLocalFilename = strLocalFile
  If Dir$(strLocalFilename, vbNormal) <> "" Then
    Kill strLocalFilename
  End If
 
  ' Winsock-Control initialisiert ?
  If mSockCtrl Is Nothing Then
    Dim frmTMP As New frmWinsock
    Set mSockCtrl = frmTMP.Winsock1
  End If
 
  ' Variablen zurücksetzen
  bFinished = False
  bHeaderSend = False
  lngFileSize = 0
 
  ' Verbindung herstellen
  With mSockCtrl
    .Close
    .LocalPort = 0
    .Connect strRemoteHost, 80
  End With
 
  On Error Resume Next
  Set frmTMP = Nothing
  Unload frmWinsock
  DoDownload = True
  Exit Function
 
Download_Error:
  If Err.Number = 5 Then
    strURL = strURL & "/"
    Resume 0
  Else
    MsgBox "Fehler!" & vbCrLf & "Error: " & Err.Number & _
      vbCrLf & Err.Description, 16
  End If
  DoDownload = False
End Function

Die Funktion Connect sieht bei mir so aus:
Code:
Private Sub mSockCtrl_Connect()
  Dim strHttpRequest As String
 
  ' HTTP-Request senden
  strHttpRequest = "GET " & strFilePath & " HTTP/1.1" & vbCrLf & _
    "Host: " & strRemoteHost & vbCrLf & _
    "Accept: */*" & vbCrLf & _
    "Connection: close" & vbCrLf & vbCrLf
 
  mSockCtrl.SendData strHttpRequest
 
  ' Hauptanwendung mitteilen, dass der Datei-Download
  ' nun gestartet wird
  RaiseEvent Start
End Sub


So, und ich würde gerne wissen, wie ich das entsprechend auf HTTPS ändern muss. Ich weiß, dass der Standardport bei HTTPS auf 443 liegt
Code:
.Connect strRemoteHost, 443

Dann bekomm ich aber als Inhalt meiner lokalen XML-Datei nur folgendes:

"Bad Request
Your browser sent a request that this server could not understand.

Client sent malformed Host header "

Ich denke mal, dass ich den HTTP-Request anpassen mus, weiß aber nicht wie.

Bin über jeden Ansatz dankbar.
 
Zurück