| |
VB.NET - Ein- und UmsteigerDownload einer Datei per Session Key | | | Autor: Alex1711 | Datum: 22.02.23 10:56 |
| Hallo zusammen,
ich bin neu hier und gerade dabei mich in VB.Net einzuarbeiten.
Insofern man das programmieren nennen kann habe ich vorher viel mit AutoIT gearbeitet.
Ich bin gerade dabei für unsere Kollegen ein kleines Tool zu schreiben, dort wird eine Session ID eingegeben (7 Stellige Zahl), mit einem Klick auf OK (Oder wenn Enter gedrückt wird) wird die ID geprüft und per httpclient versuche ich dann den Dateiname der herunterzuladenden Datei auszulesen.
Hier hänge ich.
Wenn ich den Link in Chrome öffne und den Content.Headers.ContentDisposition.FileName suche, dann ist der Dateiname (der immer dynamisch erzeugt wird) vorhanden.
Wenn ich den identischen Link über mein Programm aufrufe, dann kriege ich die folgende Meldung:
"System.Net.Http.Headers.HttpContentHeaders.ContentDisposition.get hat Nothing zurückgegeben."
Wenn ich in die response reinschaue ist die ContentDisposition "Nothing".
Ich schätze das ist ein Anfägerfehler, habe gerade über die Suche jedoch nichts finden können.
Das ist der Code, mit dem ich den Dateinamen auslesen möchte:
Async Sub BomgarWebDownload(URL As String)
Using client As HttpClient = New HttpClient()
Using response As HttpResponseMessage = Await client.GetAsync(URL)
If response.IsSuccessStatusCode Then
Using fileStream = System.IO.File.Create( _
$"C:\\Temp\\{response.Content.Headers.ContentDisposition" & _
"FileName}")
Using contentStream = Await _
response.Content.ReadAsStreamAsync
Await contentStream.CopyToAsync(fileStream)
contentStream.Close()
fileStream.Close()
End Using
End Using
End If
End Using
End Using
End Sub Der Link zum testen ist immer nur 10 Minuten gültig, daher bringt es gerade wohl nichts den mit zu posten.
Vielen Dank schon jetzt an alle die sich die Zeit nehmen mir dabei zu helfen! | |
Re: Download einer Datei per Session Key | | | Autor: HenryV | Datum: 22.02.23 12:21 |
| Durch Google gefunden: -> HttpResponseMessage.Content.Headers ContentDisposition is null
Das Problem scheint RFC6266 zu sein, den die ContentDisposition-Klasse könne scheinbar nur RFC 2183.
If response.Content.Headers.ContentDisposition Is Nothing Then
Dim contentDisposition As IEnumerable(Of String)
If response.Content.Headers.TryGetValues("Content-Disposition", _
contentDisposition) Then
response.Content.Headers.ContentDisposition = _
ContentDispositionHeaderValue.Parse(contentDisposition.ToArray()(0).TrimEnd( _
";"C).Replace("""", ""))
End If
End If | |
Re: Download einer Datei per Session Key | | | Autor: Alex1711 | Datum: 24.02.23 09:06 |
| Vielen Dank für die Info und den Lösungsansatz.
Leider scheint es so auch nicht zu klappen, er springt über die If Abfrage:
If response.Content.Headers.TryGetValues("Content-Disposition", _
contentDisposition) Then einfach drüber, ohne etwas zu tun.
Ich schätze es liegt eher an der Website, da er so wie es aussieht keine ContentDisposition findet egal wo.
Was seltsam ist, das Chrome mir den Dateinamen in der ContentDisposition anzeigt.
Macht Chrome hier etwas anders als der HttpClient? | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|