在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字符串!
答案 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;
}