如何在 Powershell 中使用 invoke-webrequest 制作多行 uri
How to make multi-line uri using invoke-webrequest in Powershell
我正在尝试在此调用中连接我的 uri,以便我可以将每个变量放在单独的行中。这样我就可以更轻松地进行更改,而不必费力搜索。我能够在 bash 脚本中执行此操作,但我不知道如何在 Powershell 中执行此操作。
行如下:
Invoke-WebRequest -Uri (beginning of url)?date=$date"&"time=$time"&"name=$env:computername"&"loginid=$env:username"&"sn=$serialnumber"&"ipaddr=$ipaddr"&"verb=profileclear
谢谢!
一种选择是将查询参数存储在有序字典中,并从中构建 URL:
$parameters = [ordered]@{
date = $date
time = $time
name = $env:computername
loginid = $env:username
sn = $serialnumber
ipaddr = $ipaddr
verb = 'profileclear'
}
$baseURI = 'https://host.fqdn/path'
# Construct full URI string from base URI + parameters
$queryString = @($parameters.GetEnumerator() |ForEach-Object {
'{0}={1}' -f $_.Key,$_.Value
}) -join '&'
$URI = '{0}?{1}' -f $baseURI,$queryString
Invoke-WebRequest -Uri $URI
我认为最简单的方法是这样的:
$uri = "Https://something.somewhere/?" +
"date=$date&" +
"time=$time&" +
"name=$env:computername&" +
"loginid=$env:username&" +
"sn=$serialnumber&" +
"ipaddr=$ipaddr&" +
"verb=profileclear"
Invoke-WebRequest -Uri $uri
我会创建一个可变字符串数组,加入它们,然后构建一个 uri:
$variables = "date=$date",
"time=$time",
"name=$env:computername",
"loginid=$env:username",
"sn=$serialnumber",
"ipaddr=$ipaddr",
"verb=profileclear"
$uri = [System.UriBuilder]::new('https://contoso.com')
$uri.Query = $variables -join '&'
Invoke-WebRequest -Uri $uri.ToString()
我正在尝试在此调用中连接我的 uri,以便我可以将每个变量放在单独的行中。这样我就可以更轻松地进行更改,而不必费力搜索。我能够在 bash 脚本中执行此操作,但我不知道如何在 Powershell 中执行此操作。
行如下:
Invoke-WebRequest -Uri (beginning of url)?date=$date"&"time=$time"&"name=$env:computername"&"loginid=$env:username"&"sn=$serialnumber"&"ipaddr=$ipaddr"&"verb=profileclear
谢谢!
一种选择是将查询参数存储在有序字典中,并从中构建 URL:
$parameters = [ordered]@{
date = $date
time = $time
name = $env:computername
loginid = $env:username
sn = $serialnumber
ipaddr = $ipaddr
verb = 'profileclear'
}
$baseURI = 'https://host.fqdn/path'
# Construct full URI string from base URI + parameters
$queryString = @($parameters.GetEnumerator() |ForEach-Object {
'{0}={1}' -f $_.Key,$_.Value
}) -join '&'
$URI = '{0}?{1}' -f $baseURI,$queryString
Invoke-WebRequest -Uri $URI
我认为最简单的方法是这样的:
$uri = "Https://something.somewhere/?" +
"date=$date&" +
"time=$time&" +
"name=$env:computername&" +
"loginid=$env:username&" +
"sn=$serialnumber&" +
"ipaddr=$ipaddr&" +
"verb=profileclear"
Invoke-WebRequest -Uri $uri
我会创建一个可变字符串数组,加入它们,然后构建一个 uri:
$variables = "date=$date",
"time=$time",
"name=$env:computername",
"loginid=$env:username",
"sn=$serialnumber",
"ipaddr=$ipaddr",
"verb=profileclear"
$uri = [System.UriBuilder]::new('https://contoso.com')
$uri.Query = $variables -join '&'
Invoke-WebRequest -Uri $uri.ToString()