Invoke-Webrequest 主机变量,无效的 URI:无法解析主机名
Invoke-Webrequest host variable, Invalid URI: The hostname could not be parsed
我正在尝试对网络服务进行 api 调用,但不确定出了什么问题。
可能是 $request
变量中的引用错误。
[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
这导致:
Invalid URI: The hostname could not be parsed.
如果我只是复制 $request
和 运行 Invoke-WebRequest
的输出就可以了。
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
对于那些可能由于与 OP 无关的问题而最终来到这里的人,这可能会有用:
从 URL 字符串中删除引号。直译:
$url = ($url -replace '"', "")
具体场景:试图动态获取 repo 的最新版本,我从 GitHub API 检索 URL 字符串,用 jq
查询 JSON在 PowerShell 中(Windows Quote Hell 的快捷票)并以包含引号的字符串结束。
我正在尝试对网络服务进行 api 调用,但不确定出了什么问题。
可能是 $request
变量中的引用错误。
[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
这导致:
Invalid URI: The hostname could not be parsed.
如果我只是复制 $request
和 运行 Invoke-WebRequest
的输出就可以了。
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
对于那些可能由于与 OP 无关的问题而最终来到这里的人,这可能会有用:
从 URL 字符串中删除引号。直译:
$url = ($url -replace '"', "")
具体场景:试图动态获取 repo 的最新版本,我从 GitHub API 检索 URL 字符串,用 jq
查询 JSON在 PowerShell 中(Windows Quote Hell 的快捷票)并以包含引号的字符串结束。