这是一个基本的 HTTP 编码和格式问题。我需要从 RESTFixture 登录到 PHP Web 服务。我需要传递帐户、用户名和密码,就像登录页面一样作为 POST 变量。
Wireshark 显示我的登录页面将其格式化为
accountNumber=accounttest&username=usertest&password=passtest
当我在测试中这样做时,我得到一个 POST 数组
$_POST: Array
(
[accountNumber] => accounttest
[amp;username] => usertest
[amp;password] => passtest
)
那会起作用,但是“amp;” 显然它使PHP找不到用户名。
实时和测试的内容类型相同。[CONTENT_TYPE] => 应用程序/x-www-form-urlencoded
以下是我尝试过的其他几种格式。在所有三种情况下,它都无法解析,因此所有字段都以一个数组条目结尾。
输入:accountNumber=accounttest%amp;username=usertest%amp;password=passtest
结果: $_POST: Array ( [accountNumber] => accounttest%amp;username=usertest%amp;password=passtest )
输入:accountNumber=accounttest;username=usertest;password=passtest
Result: $_POST: Array
(
[accountNumber] => accounttest;username=usertest;password=passtest
)
输入:accountNumber=accounttest%26username=usertest%26password=passtest
结果:$_POST: Array ( [accountNumber] => accounttest&username=usertest&password=passtest )
所以最后一个正确地将 %26 转换为 &,但不会将项目分解为数组元素。