Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
API Daten von einem angemeldeten Benutzerkonto lesen
CaptnUseless
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

API Daten von einem angemeldeten Benutzerkonto lesen

beantworten | zitieren | melden

Hi Leute,
Ich bin recht Frisch in der C# Programmierung und habe bei meinem Aktuellem Projekt folgendes Problem.
Ich möchte mir gerne Daten aus einem Online Wirtschafts Simulator mittels API's ziehen. Dies klappt auch schon recht gut, das Sieht ungefähr so aus:


  public static class APIHelper
    {
       
        public static HttpClient APIClient { get; set; } = new HttpClient();

        public static void InitialisiereClient()
        {
            APIClient = new HttpClient();
            APIClient.DefaultRequestHeaders.Accept.Clear();
            APIClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        }

    }


 public class ProduktProcessor
    {
 //-------------------------Enziklopädie--------------------------------
        public static async Task<ProduktNummern[]> LoadProdukts1()
        {
            string url = "";

            url = $"https://www.simcompanies.com/api/v4/de/0/encyclopedia/resources/";
            using (HttpResponseMessage response = await APIHelper.APIClient.GetAsync(url))

            {
                if (response.IsSuccessStatusCode)
                {
                    string jsonResponse = await response.Content.ReadAsStringAsync();
                    var enzi = JsonConvert.DeserializeObject<ProduktNummern[]>(jsonResponse);

                    return enzi;
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }

            }
        }
    }

Wie gesagt, das läuft soweit stabil,
aber wenn ich jetzt ne API aufrufen möchte die Daten über mein Benutzerkonto enthält (z.b. https://www.simcompanies.com/api/v2/companies/me/), bekomme ich nur NULL in string jsonResponse.
Das liegt natürlich daran das ich in dem Browser den der HTTPClient benutzt keine Anmeldedaten hinterlegt sind.

Darum meine Frage: Wie komme ich an die API Daten vom Benutzerkonto? Kann man sich irgendwie mit vorhandenen Cookies oder so anmelden?
Danke im Vorraus!
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.026

beantworten | zitieren | melden

Willst Du Dir nur Daten ziehen oder soll das ein automatischer Bot werden?
Zitat
Wie komme ich an die API Daten vom Benutzerkonto? Kann man sich irgendwie mit vorhandenen Cookies oder so anmelden?
Musst die Webseite anschauen, wie sie funktioniert.
Wenn sie Cookies will, musst Du mit Cookies arbeiten. Aktuell kann es nicht funktionieren, machst ja nirgends eine Authentifizierung.

PS: Die Webseite, die Du automatisieren willst, verbietet Bot Aktionen.
private Nachricht | Beiträge des Benutzers
CaptnUseless
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Ja es soll ein automatisierter Bot werden, die Webseite lässt das auch zu, solange ich nur GET methoden verwende und nicht öfters als alle 5 min zugreife.
Ich denke mal das Die Website Cookies will. Wenn ich diese URL (https://www.simcompanies.com/api/v2/companies/me/) in einem browser eingebe der sich meine Anmeldeinformationen gemerkt hat, dann sehe ich auch die daten als json die ich brauche.
Ich habe nur keine Ahnung davon wie ich den HTTPclint dazu bringe mit den richtigen Cookies zu arbeiten.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.026

beantworten | zitieren | melden

Deswegen gibts Dokumentationen und Tutorials
Google Suche nach "c# httpclient cookies"

Musst halt schauen, was die Webseite macht, wenn Du manuell im Browser agierst.
Das musst nachprogrammieren.
private Nachricht | Beiträge des Benutzers