作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想调用一个传递包含反斜杠字符的参数的 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/
我是一名优秀的程序员,十分优秀!