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-Key: 267264

Url: https://administrator.de/contentid/267264

Printed on: April 24, 2024 at 16:04 o'clock

Member: colinardo
Solution colinardo Mar 24, 2015 updated at 14:53:25 (UTC)
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
Member: TlBERlUS
TlBERlUS Mar 24, 2015 at 14:53:22 (UTC)
Goto Top
Hi,

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


Grüße,

Tiberius