2017-04-10 112 views
1

我正在嘗試做一個API調用web服務,並不確定出了什麼問題。 可能是$request變量中的錯誤引用。Invoke-Webrequest主機變量,無效的URI:主機名無法解析

[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 

這導致:

無效的URI:主機名無法解析。

如果我只是複製的$request輸出和運行Invoke-WebRequest它的工作原理。

+0

會發生什麼事,如果你去掉括號? '()' – gvee

+0

另外 - 你的頭文件需要通過'-Headers'開關傳遞,而不是在請求URI中 – gvee

回答

3

Invoke-WebRequest cmdlet需要-Uri-Headers參數。您還可以簡化的網址:

[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

謝謝你很簡單:D – Anthon