gpt4 book ai didi

rest - Invoke-RestMethod 将反斜杠转换为斜杠

转载 作者:行者123 更新时间:2023-12-04 01:22:49 26 4
gpt4 key购买 nike

我想调用一个传递包含反斜杠字符的参数的 REST API。

API 需要像 api/test/<app_name>/<user_name> 这样的路由,例如我想传递 domain\login作为 user_name 的值.

我用 PowerShell 试过这个:

$uri = [Uri]::EscapeUriString("http://localhost:5555/api/test/App Name/Domain\login")
# now $uri = 'http://localhost:5555/api/test/App%20Name/Domain%5Clogin'
Invoke-RestMethod -Method Get -Uri $uri -Verbose

Invoke-RestMethod 的输出与 -Verbose标志显示 PowerShell 正在将反斜杠转换为斜杠,之后我从 REST API 收到 404(这是预期的,因为路由不匹配):

VERBOSE: GET http://localhost:5555/api/test/App Name/Domain/login with 0-byte payload
Invoke-RestMethod :
404 Not Found

如何避免这种行为并使用带有编码反斜杠的路径?

这是我的 $PSVersionTable 的输出变量:

> $PSVersionTable

Name Value
---- -----
PSVersion 5.1.14393.953
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.953
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

最佳答案

What should word: 将 / 替换为 //也许您必须将其定义为常规 String,然后将其转换:

$RawUri = 'http://...'

这里你应该使用//而不是/

然后使用您的代码并用新变量替换文本。

关于rest - Invoke-RestMethod 将反斜杠转换为斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43252635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com