Auf Windows-Basis mehrere XML Files an Webservice HTTP-S schicken Wildcard
Hallo liebe Admins,
ich stehe mal wieder vor einer riesigen Aufgabe die eigentlich so einfach sein könnte wenn da nicht die Vorgaben wären:
- XML Files werden an ein Webservice gesendet (funktioniert bis zu einem gewissen Maß bereits mit CURL)
- Problematisch wird es wenn man mehrere versenden will da die Dateinamen viel zu lang sind und auch von Tag zu Tag variieren. (globbing bei CURL schafft das nicht)
Die können mal so und mal so lang sein und Curl schafft beim Globbing nicht die Anzahl.
flightdata10420141013209.xml
flightdata00003120141015155552.xml
Somit müsste das Skript es erlauben die Daten mit flightdata*.xml (Wildcard) zu versenden damit alle Files in diesem Ordner versendet werden um sie danach zu verschieben.
Kennt jemand von euch ein tolles Tool welches das abdeckt und hat wer auch Beispiele dafür um das zu realisieren?
hier mal das Schnippsel für den CURL Upload an welchem ich schon gearbeitet habe:
Vielen Dank fürs Lesen!
LG
Robs
ich stehe mal wieder vor einer riesigen Aufgabe die eigentlich so einfach sein könnte wenn da nicht die Vorgaben wären:
- XML Files werden an ein Webservice gesendet (funktioniert bis zu einem gewissen Maß bereits mit CURL)
- Problematisch wird es wenn man mehrere versenden will da die Dateinamen viel zu lang sind und auch von Tag zu Tag variieren. (globbing bei CURL schafft das nicht)
Die können mal so und mal so lang sein und Curl schafft beim Globbing nicht die Anzahl.
flightdata10420141013209.xml
flightdata00003120141015155552.xml
Somit müsste das Skript es erlauben die Daten mit flightdata*.xml (Wildcard) zu versenden damit alle Files in diesem Ordner versendet werden um sie danach zu verschieben.
Kennt jemand von euch ein tolles Tool welches das abdeckt und hat wer auch Beispiele dafür um das zu realisieren?
hier mal das Schnippsel für den CURL Upload an welchem ich schon gearbeitet habe:
Curl -T "V:\flightdata[1-2].xml" -u xxx:xxx -H "Content-Type:text/xml" -H SOAPAction:uploadSalesReport" "https://xxxl" -k
Vielen Dank fürs Lesen!
LG
Robs
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 254186
Url: https://administrator.de/contentid/254186
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Robs,
bau z.B. um deinen Curl-Aufruf eine FOR-Schleife die über die XML-Dateien iteriert:
Ich persönlich würde das mit Powershell machen und dem CMDLet New-WebServiceProxy
Das sieht ungefähr so aus (hab's länger nicht mehr gemacht und gerade leider keinen Test-Webservice zur Hand, deswegen ohne Gewähr)
Wie die Funktion für den Upload zu handhaben ist müsstest du aus der Doku zum deinem Webservice nachlesen.
Grüße Uwe
bau z.B. um deinen Curl-Aufruf eine FOR-Schleife die über die XML-Dateien iteriert:
@echo off
for %%a in (V:\flightdata*.xml) DO @(
Curl -T "%%a" -u xxx:xxx -H "Content-Type:text/xml" -H SOAPAction:uploadSalesReport" "https://xxxl" -k
)
Ich persönlich würde das mit Powershell machen und dem CMDLet New-WebServiceProxy
Das sieht ungefähr so aus (hab's länger nicht mehr gemacht und gerade leider keinen Test-Webservice zur Hand, deswegen ohne Gewähr)
$username = 'Benutzername'
$password = 'Passwort'
$url = 'https://yoursecretserverurl/webservices/sswebservice.asmx'
# Webservice-Proxy erstellen
$proxy = New-WebServiceProxy -uri $url -Credential (New-Object PSCredential($username,(ConvertTo-SecureString $password -AsPlainText -Force)))
# Dateien filtern
$files = gci 'V:\flightdata*.xml'
# für jede Datei die Upload-Funktion ausführen
foreach($file in $files){
# Funktion des Webservice aufrufen die die Datei hochlädt
# $proxy.uploadSalesReport(???????)
# zu deiner Hilfe alle Methoden des Webservice auflisten
# proxy | get-member -type method
}
Grüße Uwe