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
Wie kann ich eine Datei über die Rest-API senden oder abrufen?
RB87
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

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

beantworten | zitieren | melden

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

private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15618
Herkunft: BW

beantworten | zitieren | melden

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.
Zitat
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.
Fehler
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.
private Nachricht | Beiträge des Benutzers
RB87
myCSharp.de - Member



Dabei seit:
Beiträge: 5

Themenstarter:

beantworten | zitieren | melden

Danke Abt für die Antwort
private Nachricht | Beiträge des Benutzers