Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   NetHTTPRequest PUT und api (https://www.delphipraxis.net/211527-nethttprequest-put-und-api.html)

arnereu 28. Sep 2022 13:56

NetHTTPRequest PUT und api
 
Hi,
ich würde mich sehr freuen, wenn mir hier jemand helfen könnte.
Ich versuche gerade eine Datei (.csv) mit PUT und NetHTTPRequest zu versenden. Es muss leider PUT sein, da der Server kein anderen Befehl annimmt. Ich muss mich zudem per api anmelden.

In Powershell würde das so aussehen:
Der Client wäre z.B. d329krpq
Invoke-WebRequest `
-UseBasicParsing `
-Uri https://example.com/d329krpq/filename.csv `
-Method PUT `
-InFile filename.csv `
-Headers @{'x-api-key'='lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ0 0OWr'}

Ganz lieben Dank! Arne

TurboMagic 28. Sep 2022 15:19

AW: NetHTTPRequest PUT und api
 
Schon mal versucht das mit dem RestDebugger (siehe Tools Menü) nachzustellen?
Das gibt evtl. weitere Hilfestellung.

arnereu 28. Sep 2022 20:12

AW: NetHTTPRequest PUT und api
 
Hey,
danke für die schnelle Antwort. Den Rest-Debugger kannte ich noch nicht. Man lernt ja nie aus!
Da bekomme ich eine Fehlermeldung 403 Forbidden...

Gibt es da keine einfache Lösung wie:

NetHTTPRequest1.put(..... <- da komme ich leider nicht weiter. Im Netz hatte ich zu PUT auch nur ganz wenig gefunden. POST ist wohl beliebter. Akzeptiert aber leider der Server nicht.

Zudem müsste diese api "Anmeldung" noch verarbeiten?

Danke! Arne

himitsu 28. Sep 2022 20:31

AW: NetHTTPRequest PUT und api
 
Beliebter nicht unbedingt, aber POST/GET/HEAD ist einfach das, was im WWW über HTTP am meisten benutzt wird (für Webseiten) und daher auch hierfür öfters genommen wird.

Im Netz findet man auch viele Beispiele mit CURL ... vielleicht auch die erstmal durchprobieren und wenn es funktioniert, dann Dieses übernehmen und mit REST-Debugger und der Delphi-Komponente nachmachen.

Bei Google suchenWindows CURL
Bei Google suchenWindows Wget PUT
Bei Google suchenWindows CURL PUT
Bei Google suchenWindows CURL PUT REST
...

arnereu 28. Sep 2022 20:44

AW: NetHTTPRequest PUT und api
 
Danke für die Hilfe!
Mit CURL sieht das ganze eigentlich so aus:

curl -v -X PUT https://beispiel.com/d329krpq/filenme.csv
--upload-file filename.csv
--header "x-api-key: lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ00OWr"

Nur das jetzt so zu übersetzen, dass Delphi damit klar kommt... :? Daran scheitere ich leider.

LG
Arne

Papaschlumpf73 29. Sep 2022 07:12

AW: NetHTTPRequest PUT und api
 
Das hier ist das einfachste Beispiel mit Put - allerdings mit NetHttpClient:

Delphi-Quellcode:
NetHttpClient1.Put('https://beispiel.com/d329krpq/filenme.csv', [LokalerPfad]+'\filenme.csv');

Optional kann man bei Put einen Header als TNameValuePair übergeben. Das könnte möglicherweise so aussehen:
Name='x-api-key'
Value='lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ 00OWr'
Kommt auf einen Versuch an.

Bei normaler Verwendung von Username/Passwort erstellt man ein Ereignis OnAuthEvent:
Delphi-Quellcode:
procedure TFMain.NetHTTPClient1AuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType);
begin
if AnAuthTarget = TAuthTargetType.Server then
 begin
 AUserName:='DeinUserName';
 APassword:='DeinPassword';
 end;
end;

Rollo62 29. Sep 2022 08:25

AW: NetHTTPRequest PUT und api
 
Vielleicht hilft Dir auch eine etwas integriertere Lösung weiter, wie iPub-Refit ?

arnereu 30. Sep 2022 07:13

AW: NetHTTPRequest PUT und api
 
Danke für das Feedback! I komme aber damit leider nicht so klar.
Gibt es vielleicht eine andere Lösung dafür? Ich glaube idHTTP kann kein https verarbeiten? Es muss ja nicht NetHTTPRequest sein.
Ganz lieben Dank! Arne

himitsu 30. Sep 2022 08:32

AW: NetHTTPRequest PUT und api
 
Zitat:

Zitat von arnereu (Beitrag 1512719)
Ich glaube

Hier im Forum suchenindy https (eventuell nochmal auf "suche neu definieren" und nach "last post" sortieren)

arnereu 30. Sep 2022 12:49

AW: NetHTTPRequest PUT und api
 
Ich habe mir dieses Video mal angesehen:

https://youtu.be/lQhcvEGeRkw

Ab Minute 02:40 spricht der davon, dass indy kein https verarbeiten kann? Deshalb hatte ich gefragt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz