Laden...

API Daten von einem angemeldeten Benutzerkonto lesen

Erstellt von CaptnUseless vor einem Jahr Letzter Beitrag vor einem Jahr 558 Views
C
CaptnUseless Themenstarter:in
2 Beiträge seit 2022
vor einem Jahr
API Daten von einem angemeldeten Benutzerkonto lesen

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!

16.842 Beiträge seit 2008
vor einem Jahr

Willst Du Dir nur Daten ziehen oder soll das ein automatischer Bot werden?

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.

C
CaptnUseless Themenstarter:in
2 Beiträge seit 2022
vor einem Jahr

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.

16.842 Beiträge seit 2008
vor einem Jahr

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.