如何为HTTP请求转义等号?

时间:2015-09-23 06:56:32

标签: powershell http-post

在PowerShell中,我想打电话给这样的话:

Invoke-WebRequest -Uri "http://localhost:3000/test" -Method POST -Body "a="

注意正文包含等号(=),但在服务器端(我使用node.js + express.js),如果我调用request.body,它似乎是{{ 1}},而我想要的是{a:""}

如果我打电话给这样的话:

{"a=":""}

Invoke-WebRequest -Uri "http://localhost:3000/test" -Method POST -Body "`"a=`"" request.body,即损坏的JSON字符串!

2 个答案:

答案 0 :(得分:1)

我得到了解决方案:

Invoke-WebRequest -Uri "http://localhost:3000/test" -Method POST -Body "`"a%3D`""

答案 1 :(得分:0)

HTTP请求中的特殊字符应为percent-encoded。您可以使用带回调的正则表达式替换来执行此操作:

while ($row = $stm->fetch())
{
 echo $row['URL'], PHP_EOL;
}

或使用UrlEncode()方法:

while ($row = $stm->fetch())
{
 echo "$row[URL] ($row[c])", PHP_EOL;
}