Curl via Vb.Net nutzen

  • VB.NET
  • .NET 5–6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von nogood.

    Curl via Vb.Net nutzen

    Hallo Ihr Lieben,

    ich bin nach längerem Mal wieder mit einem bisher für mich nicht lösbaren Problemchen konfrontiert. Ich versuche die API von unserem Ticketsystem zu nutzen, die Befehle sind anscheinend via CURL auszuführen, nur leider blicke ich momentan absolut nicht durch wie das zu realisieren ist, anscheinend kann man das ganze via HTTPRequest bewerkstelligen, aber ich verstehe die Posts, welche ich dazu gefunden habe leider nicht.

    Hier schon mal nur das Beispiel aus der Hilfe der API:

    You can use your personal API key to authenticate the request. If you use the API key, there is no need for a password. You can use any set of characters as a dummy password.
    Spoiler anzeigen

    Quellcode

    1. curl -v -u abcdefghij1234567890:X -H "Content-Type: application/json" -X GET 'https://webadresse.de/api/v2/tickets'


    Im Anschluss an das dann hoffentlich erfolgreiche authentifizieren, will ich erstmal nur erreichen die verfügbaren Ticketfelder abzurufen:

    Quellcode

    1. Get /api/v27ticket_fields


    Kann mir jemand einen Ansatz verraten, wie das zu bewerkstelligen wäre? Mit google habe ich bedauerlicherweise bislang nur Beispiele gefunden, die ich nicht nachvollziehen kann?


    Vielen Dank im Voraus



    Nachtrag, auch mit ChatGPT bekomme ich keinen funktionierenden Code hin....
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If

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

    Sieht wie Basic Auth aus. Probier mal:

    C#-Quellcode

    1. internal class Program
    2. {
    3. static async Task Main(string[] args)
    4. {
    5. HttpClient client = new HttpClient();
    6. //der doppeltpunkt ist das Trennzeichen! also nutzer:passwort
    7. byte[] credentialBuffer = Encoding.ASCII.GetBytes("abcdefghij1234567890:X");
    8. client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(credentialBuffer));
    9. //das könnte auch nötig sein:
    10. //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    11. using (HttpResponseMessage response = await client.GetAsync("http://localhost"))
    12. {
    13. response.EnsureSuccessStatusCode();
    14. string result = await response.Content.ReadAsStringAsync();
    15. Console.WriteLine(result);
    16. }
    17. Console.ReadLine();
    18. }
    19. }

    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    Sorry für meine späte Antwort, habe zurzeit leider sehr viel Stress. Ich probiere deinen Code gleich mal, wobei ich im Moment wohl am ehesten an der Tatsache scheitere, dass ich anscheinend irgendwas bei der JSON-File falsch mache, sobald ich bestimmte Kategorien dazu nehme, erhalte ich vom Server immer Error 400 Bad Request....
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Wenn es
    ​Nachtrag, auch mit ChatGPT bekomme ich keinen funktionierenden Code hin....
    nicht kann dann dieser hier vielleicht:

    Curl -> C# Converter

    C#-Quellcode

    1. ​using (var httpClient = new HttpClient())
    2. {
    3. using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://webadresse.de/api/v2/tickets"))
    4. {
    5. var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("abcdefghij1234567890:X"));
    6. request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");
    7. var response = await httpClient.SendAsync(request);
    8. }
    9. }


    Von C# nach VB musst Du dann selber ran oder mit Telerik Converter benutzen.
    codewars.com Rank: 4 kyu