为什么此代码不起作用,您必须如何传递参数?我做错了什么:
cls
function __main{
param(
$apiEndpoint = $pathApi
)
write-host $apiEndpoint
}
__main -pathApi"/ad/user/id"
输出:
.
预期输出:
/ad/user/id
答案1
在 Powershell 中创建函数并使用 param 代码时,params 将定义您可以使用哪些参数。
在您的代码中,您有以下内容:
param(
$apiHost = '........',
$apiEndpoint = $pathApi,
$requestMethod = 'GET'
)
这意味着,您的函数__Main
现在有 3 个参数-ApiHost
,,-ApiEndpoint
和-requestMethod
。
您没有指定$pathApi
,因此您的函数没有获取传递给它的参数,因此它是空的。
但是,如果您将请求更改为以下内容:
__main -apiEndpoint "/ad/user/id"
它将按预期开始工作。
或者,按如下方式更改 param 函数:
param(
$apiHost = '........',
$pathApi = '',
$requestMethod = 'GET'
)
$apiEndpoint = $pathApi
请记住,使用 restapi 时,通常需要在路径末尾添加 /。如果不这样做,POST 可能无法正常工作。