Auslesen einer API mit Variablen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Facebamm.

    Auslesen einer API mit Variablen

    VB.NET-Quellcode

    1. Private Function test(dest) As Boolean
    2. Dim id
    3. Dim Message, Title, Eingabe
    4. Message = "Geben sie eine Priority zwischen 1 und 5 ein"
    5. Title = "InputBox Demo"
    6. id = 3
    7. Eingabe = InputBox(Message, Title, id)
    8. Dim hwr As HttpWebRequest
    9. hwr = HttpWebRequest.Create(dest)
    10. Dim wr As HttpWebResponse
    11. wr = hwr.GetResponse()
    12. If CType(wr, HttpWebResponse).StatusCode = HttpStatusCode.OK Then
    13. Dim st As Stream
    14. st = wr.GetResponseStream()
    15. Dim sr As StreamReader
    16. sr = New StreamReader(st)
    17. Dim able = sr.ReadToEnd()
    18. Dim bravo As JObject = JObject.Parse(able)
    19. Dim charlie As String = bravo("coins")(id)("name").ToString()
    20. MsgBox(charlie)
    21. ElseIf CType(wr, HttpWebResponse).StatusCode = HttpStatusCode.NotFound Then
    22. Return False
    23. End If
    24. Return False
    25. End Function


    ---------------------------------------------

    Guten Tag und schonmal Danke,

    mit dem oben geschriebenen Code möchte ich aus der API (coinmap.org/api/v1/coins/)
    mittels der ID die Namen verschiedener Coins auslesen.
    Hierbei möchte ich die ID durch eine InputBox festlegen, was allerdings nicht funktioniert.
    Wenn die ID durch besagte InputBox festgelegt wird, so öffnet sich das 2. Fenster entweder mit
    dem falschen Coin oder gar nicht.
    Sobald ich allerdings die ID in der Codestelle
    Dim charlie As String = bravo("coins")(id)("name").ToString()
    durch eine feste Zahl ersetze, so funktioniert der Code.
    Dim charlie As String = bravo("coins")(3)("name").ToString()

    Jetzt ist meine Frage: Was mache ich falsch?
    Und bitte entschuldigt evtl fehlende Informationen :/

    Grüße,
    Günni

    *Topic verschoben, Code-Tag eingefügt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hier liegt der Fehler: Dim charlie As String = bravo("coins")(id)("name").ToString()

    coins beinhaltet ein Array, heißt du müsstest über coins iterieren, bis du die entsprechende "id" findest

    PS: Das was du als "id" ansiehst, ist der Index des Arrays
    @GünniDerDritte Willkommen im Forum. :thumbup:
    Bevor Du weiter machst, stell all Deine Projekte auf Option Strict On um :!:
    Visual Studio – Empfohlene Einstellungen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    1) Da du nur VB.NET angegeben hast, kann ich nicht direkt sagen welche version du nutzt.
    Solltest du .Net Core verwenden, dann solltest du nicht HttpWebRequest verwenden sondern HttpClient

    2) Für kleiner Projekte empfehle ich dir formatterobject.com/trang-chu?format=JSON&To=VB
    Somit musst dich nicht mehr mit Strings rumschlagen.