2. August 2022 14:45
Okay, wow. Schonmal vielen Dank! Wir sind einen Schritt weiter.
Nun lautet die Fehlermeldung: ERROR:UNSUPPORTED_FILE_TYPE.
Wahrscheinlich fehlt noch die von dir vermutete Umwandlung.
EDIT: Habe mir eben den Pfad angeschaut, die Datei endet in dem Moment ja noch auf .tmp anstatt auf .pdf.
Vermutlich liegt es daran.
2. August 2022 14:57
Hier wird die Datei direkt übermittelt, daher ist hier eigentlich keine Umwandlung mehr nötig.
Wenn das noch ".tmp" ist wird das wahrscheinlich einfach blockiert, da nur bestimmte Dateitypen hochgeladen werden dürfen.
2. August 2022 15:07
Hm, tricky.
Bei Endung .pdf erscheint dieselbe Fehlermeldung.
Vielleicht muss ich es tatsächlich physisch speichern, dann uploaden, dann löschen.
EDIT:
Ok, das war es auch nicht. Selbst wenn ich eine pdf händisch ablege, und dann diese nehme und versuche per WebClient.UploadFile hochzuladen, erscheint die Fehlermeldung.
2. August 2022 15:23
Dann musst du wahrscheinlich trotzdem bei der Gegenseite nachfragen, wenn du hier keinen direkten Zugriff hast.
Da die Antwort ja direkt von der Ressource kommt.
Dort müsste dann abgeklärt werden was genau übermittelt werden muss und welche Dateitypen unterstützt werden.
2. August 2022 16:02
Ja, da warte ich nun auf Antwort.
Noch eine - vielleicht dumme - Frage:
Muss ich bei der Abfrage nicht auch irgendwie den Header gestalten? Content-Type, Content-Length, etc?
2. August 2022 16:14
Eventuell, kommt drauf an was benötigt wird. Prinzipiell kann man Header mit WebClient.Headers setzen.
Ich sehe du hast es mit Postman versucht, dort hätte es funktioniert? Wenn du hier die Parameter mitteilen kannst kann man das ggf. entsprechend abändern.
3. August 2022 07:50
Mit Postman hat es funktioniert. Auch mit der gleichen PDF. Daher vermute ich, dass ich den Content-Type noch setzen muss, den switcht Postman ja automatisch, wenn ich eine PDF einfüge.
Wie setze ich denn die Header mit WebClient? Da benötige ich doch noch eine zweite Methode um den Header zu bestücken und dann wird per Webclient(Headers) zugewiesen, verstehe ich das richtig?
Ich versuche es mal hiermit:
https://docs.microsoft.com/de-de/dotnet ... ew=net-6.0
3. August 2022 09:08
Ja, so sollte es funktionieren.
Also das könnte dann so aussehen, wenn wir deinen Code berücksichtigen:
- Code:
webClient.Headers.Add('Content-Type','application/x-www-form-urlencoded');
Das in den Klammern kannst du dann entsprechend anpassen.
4. August 2022 08:27
Hallo,
heute früh ausprobiert und ...
es funktioniert! Vielen, vielen, vielen, vielen Dank für die Hilfe, vor allem an Furean.
Der funktiorende Code sieht dann wie folgt aus:
- Code:
// dotnet webclient Instanz erzeugen
webClient := webClient.WebClient();
fileName := 'X:\XXXXXXXX\' + FORMAT(SalesShipmentHeader."No.") +'.pdf';
// Sprache für den Report setzen
locReport.SetPrintOnceOnly(TRUE);
locReport.LANGUAGE := lang.GetLanguageID('DEU');
GLOBALLANGUAGE(locReport.LANGUAGE);
SalesShipmentHeader.SETFILTER("No.",DocNo);
IF SalesShipmentHeader.FINDFIRST THEN BEGIN
locReport.SETTABLEVIEW(SalesShipmentHeader);
IF locReport.SAVEASPDF(fileName) THEN BEGIN
// eigentliches uploaden
webClient.Headers.Add('Content-Type','application/pdf');
WebResponse := webClient.UploadFile(url, 'POST', fileName);
txtString := txtString.Default;
txt := txtString.GetString(WebResponse);
MESSAGE(txt); //<---Hier dann die JSON noch korrekt auslesen, ToDo
// nach dem upload Datei wieder löschen
ERASE(fileName);
EXIT(TRUE)
END ELSE
EXIT(FALSE);
END;
mfG fips
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.