Problem mit Invoke-RestMethod
Hallo,
sorry für die "Anfängerfrage", ich mach sonst kaum etwas mit der PS und komm momentan nicht weiter
Ich habe folgenden, funktionierenden (!) curl - Aufruf an eine REST - API:
curl -u <user>:<passwort> https://<firmenadr>/confluence_secure/rest/api/content/258775490
Wie gesagt, der funktioniert, und liefert das korrekte zurück - und den muss ich in einem PS-Script einfügen. Nur, wie sieht die korrekte PS-Syntax dafür aus?
Ich hab folgendes probiert:
Ausgabe: "Invoke-RestMethod : Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden."
Genau das gleiche Codeschnippsel mit Invoke-WebRequest anstatt Invoke-RestMethod ändert genau nichts, gleicher Fehler, 404 nicht gefunden.
Es muss wohl an meiner Autorisierung liegen, die API liefert ja sowohl mittels curl als auch im WebBrowser sehr wohl die richtige Seite. Was also mach ich falsch?
Danke u. LG
Michael
PS: Wenn ich curl innerhalb des PS-Scripts aufrufe, weiss ich leider nicht, wie die curl - Ausgabe richtig an's Script zurückgegeben wird ...
sorry für die "Anfängerfrage", ich mach sonst kaum etwas mit der PS und komm momentan nicht weiter
Ich habe folgenden, funktionierenden (!) curl - Aufruf an eine REST - API:
curl -u <user>:<passwort> https://<firmenadr>/confluence_secure/rest/api/content/258775490
Wie gesagt, der funktioniert, und liefert das korrekte zurück - und den muss ich in einem PS-Script einfügen. Nur, wie sieht die korrekte PS-Syntax dafür aus?
Ich hab folgendes probiert:
$Credential = Get-Credential -Message "Bitte User/Passwort für Confluence eingeben"
$Request = Invoke-RestMethod -Method Get -Credential $Credential -Uri "https://<firmenadr>/confluence_secure/rest/api/content/258775490"
Ausgabe: "Invoke-RestMethod : Der Remoteserver hat einen Fehler zurückgegeben: (404) Nicht gefunden."
Genau das gleiche Codeschnippsel mit Invoke-WebRequest anstatt Invoke-RestMethod ändert genau nichts, gleicher Fehler, 404 nicht gefunden.
Es muss wohl an meiner Autorisierung liegen, die API liefert ja sowohl mittels curl als auch im WebBrowser sehr wohl die richtige Seite. Was also mach ich falsch?
Danke u. LG
Michael
PS: Wenn ich curl innerhalb des PS-Scripts aufrufe, weiss ich leider nicht, wie die curl - Ausgabe richtig an's Script zurückgegeben wird ...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 41969359383
Url: https://administrator.de/forum/problem-mit-invoke-restmethod-41969359383.html
Ausgedruckt am: 18.07.2025 um 14:07 Uhr
3 Kommentare
Neuester Kommentar

Manche APIs wollen den Authorization Header für Basic Auth bei der ersten Anfrage mitgeliefert bekommen, bei Nutzung des Credential Parameters wird erst eine Anfrage ohne den Header gesendet und auf eine 401 http Response gewartet woraufhin erst dann die Creds im Header mitgeschickt werden und das führt dann zu deinem o.g. Ergebnis, also die Credentials mal direkt im Header mitgeben, dann sollte es klappen, sofern die URL auch stimmt 😉
$b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(("{0}:{1}" -f 'username','password')))
Invoke-RestMethod "https://<firmenadr>/confluence_secure/rest/api/content/258775490" -Headers @{Authorization="Basic $b64"}
# Send a GET request including Basic authentication.
$Params = @{
Uri = "https://jsonplaceholder.typicode.com/posts"
Authentication = "Basic"
Credential = $Cred
}
Invoke-RestMethod @Params
adamtheautomator.com/invoke-restmethod/
Dort werden Creds und Token behandelt. Ggf. auf diese Art?