2017-04-10 16 views
1

Ich versuche einen API-Aufruf an einen Webservice zu machen und bin mir nicht sicher, was schief läuft. Könnte das Zitat sein, das in der $request Variable falsch ist.Invoke-Webrequest-Hostvariable, ungültiger URI: Der Hostname konnte nicht geparst werden

[string]$subKey = "AAAAA-BBBBB-FFFFFF-EEEEEE-DDDDD" 
[string]$method = "GET" 
[string]$searchParam = "Type" 
[string]$searchQuery = "QQ" 
$request=("""https://api.test.com/api/assets/search?" + $searchParam + "=" + $searchQuery + "&PageSize=10&Page=1"""+" -Headers @{""Authorization"""+"="""+"SubKey "+$subKey+"""}") 

Invoke-WebRequest $request -Method Get 

Daraus ergibt sich:

Ungültige URI: Der Hostname konnte nicht analysiert werden.

Wenn ich nur die Ausgabe von $request kopieren und Invoke-WebRequest ausführen, funktioniert es.

+0

Was passiert, wenn Sie die Klammern entfernen? '()' – gvee

+0

Auch - Ihre Header müssen mit dem '-Kopfzeilen' Schalter übergeben werden, nicht in der Anfrage URI – gvee

Antwort

3

Das Cmdlet Invoke-WebRequest akzeptiert einen -Uri und einen -Headers Parameter. Sie können auch die URL vereinfachen:

[string]$subKey = "AAAAA-BBBBB-FFFFFF-EEEEEE-DDDDD" 
[string]$method = "GET" 
[string]$searchParam = "Type" 
[string]$searchQuery = "QQ" 
$uri= "https://api.test.com/api/assets/search?$searchParam=$searchQuery&PageSize=10&Page=1" 

Invoke-WebRequest -Uri $uri -Headers @{Authorization ="SubKey $subKey"} -Method Get 
+0

Danke, das war einfach: D – Anthon

Verwandte Themen