Web Response (JSON String) kann nicht heruntergeladen werden

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Khartak.

    Web Response (JSON String) kann nicht heruntergeladen werden

    Hallo zusammen,

    ich habe eine URL mit welcher ich den Tracking Status einer DHL Sendung als JSON Object erhalte:
    dhl.de/int-verfolgen/data/search?piececode=00000
    Es funktioniert auch wenn ich nur Nullen verwende, dann bekomme ich halt ein Response ohne Werte bzw. Standardwerte:

    VB.NET-Quellcode

    1. {"sendungen":[{"id":"00000","hasCompleteDetails":true,"sendungsinfo":{"gesuchteSendungsnummer":"00000","sendungsrichtung":"ANKOMMEND"},"sendungsdetails":{"sendungsnummern":{"sendungsnummer":"00000","multiFrankingIds":[]},"sendungsverlauf":{"fortschritt":0,"maximalFortschritt":5,"farbe":0},"istZugestellt":false,"ruecksendung":false,"retoure":false,"expressSendung":false,"quelle":"PAKET","anzeigeBriefbenachrichtigung":false},"versandDatumBenoetigt":false,"sendungNichtGefunden":{"keineDatenVerfuegbar":true,"sendungsnummerUngueltig":true,"keineDhlPaketSendung":true}}],"mergedAnonymousShipmentListIds":[]}

    Ich bekomme es aber nicht hin diesen String herunterzuladen. Egal welche Funktion ich benutze, das Programm hält an der Stelle wo die URL abgerufen wird immer an.

    VB.NET-Quellcode

    1. Dim client As New System.Net.Http.HttpClient
    2. Dim result1 = client.GetStringAsync(URL).Result

    Ich habe es auch mit dem HtmlAgilityPack probiert, klappt auch nicht:

    VB.NET-Quellcode

    1. Dim CurrWebPage As New HtmlAgilityPack.HtmlWeb
    2. Dim CurrHTMLDoc As HtmlAgilityPack.HtmlDocument
    3. CurrHTMLDoc = CurrWebPage.Load(URL)


    Und auch nicht mit dem WebClient

    VB.NET-Quellcode

    1. ​Dim Client As New WebClient
    2. Client.DownloadString(URL)

    Was übersehe ich?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Khartak“ ()

    Ich bekomme keine. Das Programm hält an. Es geht also nicht weiter. Also auch kein Fehler. Ähnlich wie ein Deadlock nur halt ohne Fehler. Programm bleibt an (Konsole). Debugger geht nicht weiter.
    DHL hätte wohl gerne mindestens einen Accept-Header mit dabei:
    Original C# Code

    C#-Quellcode

    1. System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
    2. client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
    3. string json = client.GetStringAsync("https://www.dhl.de/int-verfolgen/data/search?piececode=00000").Result;
    4. Console.WriteLine(json);
    Code-Konverter VB.NET Code

    VB.NET-Quellcode

    1. Dim client As System.Net.Http.HttpClient = New System.Net.Http.HttpClient()
    2. client.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))
    3. Dim json As String = client.GetStringAsync("https://www.dhl.de/int-verfolgen/data/search?piececode=00000").Result
    4. Console.WriteLine(json)

    Falls du mit .NET 4.5 oder neuer arbeitest, wäre es höchst Empfehlenswert mit Async/Await zu arbeiten und die Tasks zu "awaiten" anstatt .Result aufzurufen.
    MEGA! Darauf wäre ich nicht gekommen. Super vielen lieben Dank! Habe alles probiert, aber auf den JSON Header wäre ich nicht gekommen. Hast mit sehr weitergeholfen.

    Ja klar, ich arbeite fast nur mit Tasks/Asyncen Methoden. Das ist kein Problem. <3 :thumbsup:

    Hatte hier auch leider länger nicht reingeschaut. Ich sehe deine Antwort ist bereits vom 9. Mai.