rest - 在此处字符串标题之后但在行尾之前不允许使用任何字符
问题描述
我正在为我的脚本使用这个 aa 基础:
https://www.nwcadence.com/blog/vststfs-rest-api-the-basics-and-working-with-builds-and-releases
我的脚本如下
Param(
[string]$vstsAccount = "abc",
[string]$projectName = "abc",
[string]$user = "",
[string]$token = "xyz"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
$verb = "POST"
$body = @"{
"definition": {
"id": 20
}
}"@
$uri = "https://$($vstsAccount).visualstudio.com/DefaultCollection/$($projectName)/_apis/build/builds?api-version=4.1"
$result = Invoke-RestMethod -Uri $uri -Method $verb -ContentType "application/json" -Body (ConvertTo-Json $body) -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
但是我在上面的博客文章中使用的正文定义有语法错误。
> o characters are allowed after a here-string header but before the end
> of the line. At C:\Users\abc\Documents\vstsqueuebuild.ps1:18 char:17
> + "definition": {
> + ~ Unexpected token ':' in expression or statement. At C:\Users\abc\Documents\vstsqueuebuild.ps1:19 char:14
> + "id": 20
> + ~ Unexpected token ':' in expression or statement. At C:\Users\anc\Documents\vstsqueuebuild.ps1:21 char:1
> + }"@
> + ~ Unexpected token '}' in expression or statement. At C:\Users\abc\Documents\vstsqueuebuild.ps1:24 char:9
> + $uri = "https://$($vstsAccount).visualstudio.com/DefaultCollection/$( ..
解决方案
有多种方法可以更改此处的字符串($body
变量的值):
选项1:
$body = @{
definition = @{
id = 20
}
}
选项 2:
$body = @"
{
"definition": {
"id": 20
}
}
"@
正如 boxdog 所提到的。
选项 3:
$body = '
{
"definition": {
"id": 20
}
}
'
推荐阅读
- gerrit - 在 Gerrit 中查看代码差异时,是否可以隐藏注释?
- excel - 使用 Excel 和 VBA 打开文件(在 Mac 上)
- javascript - Accordion 上的最大高度切换动画
- git - 当我进行未跟踪的更改时,如何将项目目录重新连接到 github?
- graphql - 如何创建托管的 Apollo 联合网关?
- laravel - 字体真棒在 laravel/dompdf 中不起作用
- awesome-wm - awesomewm 中浮动窗口的持久窗口大小
- javascript - 电子 dialog.showOpenDialog() 返回未定义
- java - 使用注释和 lombok 对字段的切入点
- mongodb - React Native 在没有本地主机的情况下连接到 MongoDB