![]() |
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 ![]() -Method PUT ` -InFile filename.csv ` -Headers @{'x-api-key'='lXViWTzFic9sM8Qqe9Ew7JME8xTdBAOMJHdIjK7XkjQ0 0OWr'} Ganz lieben Dank! Arne |
AW: NetHTTPRequest PUT und api
Schon mal versucht das mit dem RestDebugger (siehe Tools Menü) nachzustellen?
Das gibt evtl. weitere Hilfestellung. |
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 |
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. ![]() ![]() ![]() ![]() ... |
AW: NetHTTPRequest PUT und api
Danke für die Hilfe!
Mit CURL sieht das ganze eigentlich so aus: curl -v -X PUT ![]() --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 |
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; |
AW: NetHTTPRequest PUT und api
Vielleicht hilft Dir auch eine etwas integriertere Lösung weiter, wie
![]() |
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 |
AW: NetHTTPRequest PUT und api
Zitat:
![]() |
AW: NetHTTPRequest PUT und api
Ich habe mir dieses Video mal angesehen:
![]() 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 06:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz