tlberlus
Goto Top

Powershell: Invoke-Webrequest

Hallo Zusammen,

ich muss mit der Powershell Daten aus einer Online-DB abrufen. Leider habe ich das Problem, dass manche der Daten Umlaute enthalten. Diese werden mit ? ersetzt.
Hat einer von euch hierzu einen Lösungsansatz für mich?
<code/>
Invoke-WebRequest https://LinkzurDB -headers {"Anmeldedaten"} `
-Method Get -ContentType 'application/json; charset=utf-8' | Convertfrom-Json


Vielen Dank.

Grüße,

Tiberius

Content-ID: 267264

Url: https://administrator.de/forum/powershell-invoke-webrequest-267264.html

Ausgedruckt am: 22.12.2024 um 19:12 Uhr

colinardo
Lösung colinardo 24.03.2015 aktualisiert um 15:53:25 Uhr
Goto Top
Hallo Tiberius,
hast du mal mit F12 im Browser in den Header der Seite geschaut welches Encoding die Seite dem json mitgibt ?
Vermutlich haben es die Entwickler nicht richtig in UTF-8 umgewandelt. Und gibt die Seite wirklich nativ application/json aus ? Check das auch auf dem Tab Netzwerkanalyse der Browser-Developer-Tools.
In Powershell gibt es aber noch eine Funktion die für JSON Kodierte Daten besser geeignet ist: Invoke-Restmethod, damit werden die Daten gleich als Objekt geliefert und müssen nicht mehr durch ConvertFrom-Json gejagt werden.
$result = Invoke-RestMethod -uri "https://LinkzurDB" -Method Get -Headers {"Anmeldedaten"}  
$result
Und wie überprüfst du die Ausgabe, in der Powershell-Konsole / ISE oder in einer Textdatei-Ausgabe ?
Wie ist bei dir das $OutputEncoding eingestellt ?

Grüße Uwe
TlBERlUS
TlBERlUS 24.03.2015 um 15:53:22 Uhr
Goto Top
Hi,

danke, das Invoke-RestMethod hat es erledigt. face-smile


Grüße,

Tiberius