2017-04-10 5 views
1

webservice에 대한 API 호출을 수행하려고하는데 어떤 문제가 있는지 확실하지 않습니다. $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

또한 - 헤더는 요청 URI가 아닌'-Headers' 스위치를 사용하여 전달해야합니다. – gvee

답변

3

Invoke-WebRequest cmdlet에는 -Uri-Headers 매개 변수가 필요합니다. 또한 URL을 단순화 할 수 있습니다.

[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