Laden...

Wie kann ich eine Datei über die Rest-API senden oder abrufen?

Erstellt von RB87 vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.019 Views
R
RB87 Themenstarter:in
5 Beiträge seit 2021
vor 3 Jahren
Wie kann ich eine Datei über die Rest-API senden oder abrufen?

Wie kann ich eine Datei (z. B. im PDF-Format), die sich in einem Ordner befindet, lokal über einen API-Aufruf in einem Ordner in einem Dokumentenverwaltungssystem verschieben? Dies ist ein kleiner Cod-Abschnitt des API-Aufrufs, der die Aufgabe übernimmt.
Ich müsste ein paar Stellen mit Sternen verdecken


client = new RestClient("http://***.***.***.*");
            client.Authenticator = new HttpBasicAuthenticator("******", "******");
            client.Timeout = -1;
            request = new RestRequest("/*****/api/*****/*****/371 ", Method.POST);




            request.AddHeader("content-type", "multipart/form-data");
            request.AlwaysMultipartFormData = true;

            request.AddParameter("Object", "{" +
                    "\"****\":\"*****\"," +
                    "\"name\":\"*******\"," +
                    "\"******\":\"2\"," +
                    "\"fields\":{" +
                    "\"*******\":{\"value\":\"" + DateTime.Now.ToString("dd.MM.yyyy") + "\"}" +
                    "}" +
                "}");
            request.AddFile("File", "C:/Users/********/Documents/****/*****/pdf.pdf");
            response = client.Execute(request);
            Console.WriteLine(response.Content);
        }
    }
}

nun erstmal diese Fehlermedung wird rausgegeben:


System.IO.FileNotFoundException: "Die Datei" C: /Users/******/Documents/*****/*****/pdf.pdf "wurde nicht gefunden. 

request.addfile ist ein falscher Befehl? Der Code wird lokal in Visual Studio ausgeführt

Danke für eure Hilfe 🙂

16.834 Beiträge seit 2008
vor 3 Jahren

Das hat mit REST nichts zutun. REST beschreibt die Art und Weise des Aufbaus einer API. Es ist ein Paradigma.
Inhalte werden dabei über Plain-Text dargestellt; nicht binär.

Viele sagen, dass Du Datei-Inhalte mit REST nicht darstellen kannst; sondern wenn dann die Route.
Andere sagen Du kannst das, wenn Du den Body als base64 encodierst.

Ich gehöre zu denen, die sagen, dass REST keine Regeln für den Umgang mit Dateien beschreibt.

Wie kann ich eine Datei (z. B. im PDF-Format), die sich in einem Ordner befindet, lokal über einen API-Aufruf in einem Ordner in einem Dokumentenverwaltungssystem verschieben?

Verstehe die Frage nicht, was das mit REST zutun haben soll.
Das Zielsystem sagt Dir doch, wie Du mit der Schnittstelle sprechen musst, damit Du Dateien hochladen kannst.
Und das musst eben umsetzen.

Fehlermeldung:
System.IO.FileNotFoundException: "Die Datei" C: /Users/*/Documents//*****/pdf.pdf "wurde nicht gefunden.

Auch das hat wenig mit REST an für sich zutun, sondern mit der Bibliothek, die Du verwendest.
Entweder die Datei ist da wirklich nicht, die Anwendung hat keine Rechte drauf oder Du verwendest die Lib falsch.
Wird sich aber sicherlich in der Doku nachlesen lassen.

Tendentiell ist die Wahrscheinlichkeit aber eher gering, dass es ein Bug der Lib ist.

R
RB87 Themenstarter:in
5 Beiträge seit 2021
vor 3 Jahren

Danke Abt für die Antwort