Webapi über GET unter VB.Net Json-Datei abholen. Vorher Authentifizierung mit Json-String/Datei

  • VB.NET

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

    Webapi über GET unter VB.Net Json-Datei abholen. Vorher Authentifizierung mit Json-String/Datei

    Vie gegoogelt nichts passendes gefunden.

    Ich muss von eine Web-Api-Schnittstelle eine Json-Datei abholen. Um diese vorher abzuholen muss ein Json-String bzw. Datei zur Authentifizierung genutzt werden.

    Als Beispiel, bzw. Dokumentation habe ich den Json-String als Beispiel und einen PHP-Code mit Curl-Befehlen. Nur leider kenne ich mich mit PHP gar nicht aus und bekomme es so für mich nicht in VB.Net übersetzt.

    Json serialisieren und deserialisieren ist kein Problem, dies ist alles gelöst.

    Komplettes Beispiel in PHP und JSON:

    PHP-Quellcode

    1. <?php
    2. $stateReq = array(
    3. 'jsonrpc' => '2.0',
    4. 'method' => 'lead.getList',
    5. 'id' => '1',
    6. 'params' => array(
    7. 'request' => array(
    8. 'credential' => array(
    9. 'identifier' => 'der.benutzername_Beispiel',
    10. 'secret' => 'BeispielPasswort'
    11. ),
    12. 'filter' => array(
    13. 'startDate' => '2014-06-01 00:00:00',
    14. 'limit' => 5,
    15. 'offset' => 0
    16. )
    17. )
    18. ),
    19. );
    20. // in JSON-String umwandeln
    21. $output = json_encode($stateReq);
    22. // erzeuge einen neuen cURL-Handle
    23. $ch = curl_init();
    24. // setze die URL
    25. $jsonUrl = "https://de.fgrp.net/api/json.php";
    26. // aufgerufene URL ausgeben
    27. echo "$jsonUrl\r\n<br/>";
    28. curl_setopt($ch, CURLOPT_URL, $jsonUrl);
    29. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    30. curl_setopt($ch, CURLOPT_HEADER, 0);
    31. curl_setopt($ch, CURLOPT_POST, 1);
    32. curl_setopt($ch, CURLOPT_POSTFIELDS, $output);
    33. // führe das Request aus
    34. $result = curl_exec($ch);
    35. $info = curl_getinfo($ch);


    Vielleicht kann mir da jemand helfen bitte.
    Mir ist jetzt nicht klar wo das Problem liegt?
    Du baust dir dein JSON zusammen, ob nun direkt als String <X oder über Serialisierung sei dahingestellt.
    Das JSON nimmst du und schickst es mittels HTTPClient als POST-Request an dein Endpunkt.
    Fertig
    Habe es nun so gelöst und es klappt:

    VB.NET-Quellcode

    1. Private Function webanfrage(application As String, method As HttpMethod) As String
    2. Dim uri2 As String = "https://url.de"
    3. Try
    4. Using client As New HttpClient
    5. Dim request As New HttpRequestMessage(method, uri2)
    6. request.Content = New StringContent(application, Encoding.UTF8, "application/json")
    7. Dim response = client.SendAsync(request).Result
    8. Dim response2 = response.Content.ReadAsStringAsync().Result
    9. Console.WriteLine("Geklappt")
    10. Console.WriteLine(response2)
    11. Return response2
    12. End Using
    13. Catch ex As Exception
    14. Console.WriteLine("Ex: " & ex.ToString)
    15. Return ""
    16. End Try
    17. End Function
    Wenn du mit JSON arbeitest, dann gibt es WebClient-Klassen, die direkt in und von JSON serialisieren. Du übergibst also nur eine Entität an den HttpClient. Die Methoden heißen Get-/Put-/PostJsonAsync() bzw. DeleteAsync(). Sie befinden sich im System.Net.Json Namespace. Muss über Nuget geladen werden.


    Ein Computer wird das tun, was du programmierst - nicht das, was du willst.